2013-05-03 65 views
1

我一直在代碼塊收到錯誤消息,它說:錯誤代碼調試的C++代碼塊

Error: 'Addnumbers' was not declared in this scope 

我剛開始用C++,而且不知道這意味着什麼。這裏是我的代碼:

#include <iostream> 
using namespace std; 

int main() 
{ 
    int fnum; 
    int snum; 

    cout << "Enter First number" << endl; 
    cin >> fnum; 
    cout << "Enter Second Number" << endl; 
    cin >> snum; 

    Addnumbers (fnum, snum); 
    return 0; 
} 

int Addnumbers(int fnum, int snum){ 
    int ans = fnum+snum; 
    return ans; 
} 

回答

2

您需要之前聲明函數它的使用:

int Addnumbers(int fnum, int snum); 

int main() 
{ 
} 

int Addnumbers(int fnum, int snum) 
{ 
    // ... 
} 

第一聲明是所謂的原型,並告訴編譯器某處有一個名爲AddNumbers的函數,它帶有指定的參數和返回類型。那麼你可以在任何地方都有定義,即使在另一個源文件中。

在C++中(以及在C或其他語言的基礎上C)一切必須聲明它它使用之前。這就是編譯器知道存在的東西的方式。

+0

非常感謝!我不知道。這對所有功能都一​​樣嗎?主要功能總是最後? – Col1107 2013-05-03 21:22:36

+0

@ Col1107就像在我的例子中,聲明可以在'main'函數之前,它們只需要在它們被使用之前。但是,放置'主'最後幾乎總是一個安全的賭注。 – 2013-05-03 21:25:18

1

您需要主要麼移動Addnumbers,或者做一個向前聲明:

#include <iostream> 
using namespace std; 

int Addnumbers(int fnum, int snum); 

int main() 
{