函数顺序在C ++中是否重要?

时间:2014-09-30 13:25:46

标签: c++ function

我开始学习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 ++中的函数顺序是否重要?我认为它没有。请澄清问题。

1 个答案:

答案 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;
}