2017-03-20 63 views
0

我是C++世界的初學者,我想知道,爲什麼類不能編譯?類不編譯! C++

// In the header file: "MyClass.hpp" 

class MyClass 
{ 
int m_data1; 

MyClass(); 

private: 
double m_data2; 
} 

// In the source file: "MyClass.cpp" 

#include "MyClass.hpp" 

MyClass::MyClass() 
{ 
} 

Compiler error: C2533 'MyClass::{ctor}': constructors not allowed a return type

謝謝

+1

我們想太瞭解,所以如果你可以給我們一個編譯器錯誤,你可以幫助我們來幫助你。 – ChemiCalChems

+0

你沒有指定'm_data1'的範圍和構造函數。構造函數應該是公共的,除非該類只有靜態方法。 – Havenard

+0

@Havenard對於一個類,其默認訪問級別是私有的,所以構造函數之後的私有說明符是多餘的。儘管沒有一些靜態工廠函數,但他不能實例化他的類。 –

回答

2

Class的右大括號丟失在最後一個分號。一個類的所有大括號都需要在它們後面加分號。另外,Class的構造函數是私有的,所以不能在類之外調用它。

下面是代碼的固定:

class MyClass 
{ 
    public: // Made your constructor public 
     MyClass(); 

    private: 
     int m_data1; 
     double m_data2; 
}; // added a closing semicolon 
+0

就是這樣!我沒有得到這個反射來檢查這個愚蠢的錯誤。謝謝!! – Zizou23

+0

@ Zizou23請選擇我的答案旁邊的複選標記。當你這樣做時它會變成綠色。 –

+0

看來我需要等待四分鐘才能接受你的回答。 :) – Zizou23