我开始学习C ++。在IDE代码块中,这将编译:
#include <iostream>
using namespace std;
void hi() {
cout << "hi" << endl;
}
int main() {
hi();
return 0;
}
但这并不是:
int main() {
hi();
return 0;
}
void hi() {
cout << "hi" << endl;
}
它给了我错误:
error: 'hi' was not declared in this scope
C ++中的函数顺序是否重要?我认为它没有。请澄清问题。
答案 0 :(得分:32)
是的,在调用之前,你必须至少声明这个函数,即使实际的定义直到事后都没有。
这就是为什么你经常在头文件中声明函数,然后在你的cpp文件顶部#include
。然后你可以按任何顺序使用这些函数,因为它们已经被有效地声明了。
请注意,在您的情况下,您可以这样做。 (working example)
void hi(); // This function is now declared
int main() {
hi();
return 0;
}
void hi() { // Even though the definition is afterwards
cout << "hi" << endl;
}