2010-07-13 33 views
0

我接收克++錯誤(未定義參照 'SomeClass的:: SomeClass的(int)的' 和 'SomeClass的::〜SomeClass的')用下面的:以下g ++類構造中的錯誤是什麼?

/* 
* SomeClass.h 
* 
*/ 

#ifndef SOMECLASS_H_ 
#define SOMECLASS_H_ 

class SomeClass 
{ 

public: 
    SomeClass(); 
    SomeClass(int someInt); 
    ~SomeClass(); 
}; 

#endif /* SOMECLASS_H_ */ 


/* 
* SomeClass.cpp 
* 
*/ 

#include "SomeClass.h" 

SomeClass::SomeClass() 
{ 
} 

SomeClass::SomeClass(int someInt) 
{ 
} 

SomeClass::~SomeClass() 
{ 
} 

/* 
* main.cpp 
* 
*/ 

#include "SomeClass.h" 

int main() 
{ 

    SomeClass::SomeClass someObject(1); 

    return 0; 
} 
+0

類沒有隱式名稱空間? – user383352 2010-07-13 22:20:56

回答

6
SomeClass::SomeClass someObject(1); 

的所有這不是有效的第一,因爲SomeClass::SomeClass命名構造函數,而不是類類型。只要說SomeClass。然後你可能忘記鏈接到SomeClass.cpp的目標文件。確保在編譯可執行文件時將其包含在編譯器命令行中,或者使用您使用的任何IDE將其添加到項目配置文件中。

1

SomeClass不在命名空間中。

SomeClass someObject(1); 
+0

類沒有隱式名稱空間? – user383352 2010-07-13 22:18:35

+0

@drenami - 實際上,一切都會和SomeClass在命名空間中 - 全局命名空間。馬克想說的是,我認爲SomeClass不在名爲SomeClass的名稱空間中,SomeClass也不在名稱空間中。 – 2010-07-13 22:51:19