#include <iostream>
using namespace std;
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
我使用g ++收到以下编译错误:
l1.cpp: In function 'int main()':
l1.cpp:5:15: error: 'HelloWorld' was not declared in this scope
答案 0 :(得分:85)
您需要先声明或定义该函数,然后才能使用它。否则,它不知道HelloWorld()
作为函数存在。
在主要功能之前添加:
void HelloWorld();
或者,您可以在HelloWorld()
:
main()
的定义
#include <iostream>
using namespace std;
void HelloWorld()
{
cout << "Hello, World" << endl;
}
int main()
{
HelloWorld();
return 0;
}
答案 1 :(得分:19)
您必须先声明该功能才能使用它:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
或者您可以在HelloWorld()
main()
的定义
答案 2 :(得分:15)
您需要转发声明HelloWorld()
,以便main
知道它是什么。像这样:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
答案 3 :(得分:9)
你需要在调用之前获得函数的原型,或者在它之前拥有整个函数。
所以第一个是:
void HelloWorld();
int main() {
HelloWorld();
return 0;
}
void HelloWorld() {
cout << "Hello, World" << endl;
}
第二种方式是:
void HelloWorld() {
cout << "Hello, World" << endl;
}
int main() {
HelloWorld();
return 0;
}
答案 4 :(得分:8)
由于某些原因,还有一种可能性,即使用extern声明:
#include <iostream>
using namespace std;
int main()
{
extern void HelloWorld();
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
当您不希望将函数名称引入命名空间范围时,最好。
答案 5 :(得分:5)
所有这些答案都是正确的,但奇怪的是,这会有效:
struct Hello {
static int main() { World(); return 0; } /* note: World() not declared yet */
static void World() { std::cout<<"Hello World"; }
};
int main() { return Hello::main(); }
答案 6 :(得分:4)
你必须把功能放在主功能之前。
答案 7 :(得分:3)
在C ++中,您需要在调用它们之前定义或至少声明这些函数。
到目前为止你要做的事情是这样的:
int main()
{
cout << b;
int b = 10;
}
所以你也可以尝试这样:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
在C ++中,在main函数之前定义所有其他函数是一种很好的做法。
答案 8 :(得分:2)
重新排列HelloWorld()
,使其显示在main()
之前:
#include <iostream>
using namespace std;
void HelloWorld()
{
cout << "Hello, World" << endl;
}
int main()
{
HelloWorld();
return 0;
}
答案 9 :(得分:1)
如果要定义要在主要功能下运行,则应首先在主要功能下声明。
#include<iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}