2013-03-03 42 views
0

我正在使用Code::Blocks。這裏是我的代碼爲什麼我得到一個錯誤,告訴我構造函數沒有命名類型?

#include "LargeInt.h" 

LargeInt::LargeInt() 
{ 

} 

頁眉

#ifndef LARGEINT_H 
#define LARGEINT_H 


class LargeInt 
{ 
    public: 
     LargeInt(); 
}; 

#endif // LARGEINT_H 

,我得到的錯誤是

'LargeInt沒有指定類型' 在我班上的3線

我所做的只是單擊文件>新建>類,然後開始編碼而不更改任何設置或任何設置這樣的興奮。

+3

你在構造函數裏面想做什麼? – 2013-03-03 21:23:00

+0

我試過這兩個控制檯應用程序和一個空項目 – 2013-03-03 21:23:22

+0

作爲對stfrabbit的迴應,我將嘗試使用我的重載插入運算符從用戶獲得輸入 – 2013-03-03 21:24:26

回答

3

你不應該在構造函數中定義運算符。它們應該是CPP文件中的單獨方法。

+0

好點,我忘記了。但是這並不會改變錯誤。事實上,我只是在完成課程後纔對其進行測試。我這次甚至沒有添加額外的代碼。 – 2013-03-03 21:27:00

+0

也許用乾淨的代碼更新您的文章,以便於審查。 – 2013-03-03 21:30:49

+0

完成。不知道我能做到這一點。 – 2013-03-03 21:34:38

1

構造函數應該執行將LargeInt類型的對象變爲有效狀態所需的任何操作。好像你正試圖定義功能operator<<operator+在構造函數中 - 你不能做到這一點:

LargeInt::LargeInt() 
{ 
    LargeInt::operator<<(String input){} 
    LargeInt::operator+(LargeInt){} 
} 

應該定義具有從類定義相應的聲明中的每個功能。你的實現文件應該是這樣的:

LargeInt::LargeInt() 
{ 
    // ... 
} 

LargeInt LargeInt::operator<<(String str) 
{ 
    // ... 
    return some_large_int; 
} 

istream& operator>>(istream &is, LargeInt &large) 
{ 
    // ... 
    return is; 
} 

ostream& operator<<(ostream &os, LargeInt &large) 
{ 
    // ... 
    return os; 
} 
+0

我完全搞砸了代碼,並且沒有想到地發佈它。但是,即使我刪除了所有內容,但我創建類時出現的默認代碼仍然會出現該問題 – 2013-03-03 21:29:42

相關問題