如何修正错误:C++函数未在此范围内声明

852 阅读2分钟

在使用不同的编程语言时,我们每天都会遇到许多错误。其中一个错误是函数没有在这个范围内声明。这个错误在C/C++语言中主要是在定义方法的时候发生。在今天的文章中,我们将协助你创建这个错误并自行解决。

注意:本指南中使用的操作系统是Ubuntu 20.04。然而,同样的指南也可以在其他操作系统上实现。

例子01:

从第一个例子开始,看看 "函数未在范围内声明 "的错误是如何发生的。让我们在shell中用 "touch "查询创建一个新的c++文件,如下图所示。

$ touch test.cc

创建文件后,你需要在某个编辑器内打开它,向其中添加C++代码。因此,我们已经为这个目的安装了GNU Nano编辑器。因此,我们利用Nano编辑器来打开并在其中写入代码,如图所示。

$ nano test.cc

在这个文件中,我们在开始时包含了一个输入输出流头。在C++代码中必须使用标准命名空间。因为没有它,我们的代码将无法工作。main方法已经被首先初始化,开始执行。它指出,控制权已经交给了main方法。主方法使用函数调用来执行用户定义的方法 "Display()"。因此,在主方法之后定义的Display()方法运行并输出一些文本语句。

在C++语言的情况下,我们必须安装g++编译器。所以,我们已经在我们的系统上安装了它。在命令中已经利用了g++编译器来编译代码。编译时抛出一个异常,即 "Display() "方法没有在范围内定义。这就是我们的代码在执行后也无法工作的原因。

$ g++ test.cc

我们必须更新一段代码以使其工作,并避免更多的范围错误。除了一件事,这段代码都是正确的。为了解决这个错误,第一个有帮助的方法是在main()方法之前声明函数原型。因此,我们在更新的代码中,在main方法之前使用了函数原型。

当我们编译了这段代码后,它没有抛出任何异常,运行正常。

$ g++ test.cc
$ . /a.out

解决这个范围错误的另一个方法是,如果你不想使用main()函数的函数原型,就在main()函数之前定义用户定义的方法。因此,按照下面的代码,我们交换了main()方法和Display()方法的位置。

当我们编译了更新后的代码后,它运行良好。因此,该文件代码被成功执行,并在终端屏幕上显示了输出。

$ g++ test.cc
$ . /a.out

例子02:

让我们看看另一个例子,在shell中获得函数范围错误并解决它。所以,我们已经更新了文件 "test.cc "的代码。在命名空间和标题之后,我们在代码中定义了两个函数,show1()和show2()。show1()方法通过一个函数调用,在其中调用了show2()方法。

在编译该文件时,我们得到了一个错误,显示方法show2()没有在范围内声明。由于函数show2()已在最后声明,我们必须在show1()方法之前声明其原型。

$ g++ test.cc

让我们更新代码以消除这个错误。因此,我们再次打开文件,在命名空间之后和所有方法之前添加了show2()的函数声明。

在编译代码后,我们得到了一个新的错误,尽管之前的错误已经解决。该错误说,该代码有一个未定义的引用。这意味着如果没有main()方法,我们的代码将无法工作。另外,我们没有在任何地方调用show1()方法。

$ g++ test.cc

因此,我们再次打开该文件以解决这个错误。我们在两个函数的最后定义了main方法。主方法一直在调用show1()方法。由于show1()方法在开始时就被定义了,所以不需要进行函数原型声明。show1()方法正在调用show2()方法。这样一来,执行就完成了。

让我们再次编译和运行这段代码。你可以看到,我们没有发现任何错误,而且工作正常。

$ g++ test.cc
$ . /a.out

总结

在本指南中,我们用简单的例子来说明使情况得到错误。"函数未在范围内声明"。此外,我们还讨论了用不同的方法解决此类问题的技巧。我们希望你喜欢这篇文章,并认为它有帮助。