我有一個名稱空間,我想在其中定義一個類。該類相當複雜,所以我寧願將它定義在單獨的頭文件中,但即使是最簡單的代碼也會給我一個「未定義的引用」錯誤。如何使用名稱空間內單獨標題中定義的類
的main.cpp
#include <iostream>
namespace A {
#include "C.hpp"
}
int main()
{
A::C foo;
std::cout << foo.member << std::endl;
return 0;
}
C.hpp
class C {
public:
C();
int member;
}
C.cpp
C::C()
{
this->member = 10;
}
當我運行g++ C.cpp main.cpp
我得到「的main.cpp :(。文字+ 0×10 ):未定義對`A :: C :: C()'的引用錯誤。我想這是構造函數的C :: C()定義,但是我不確定如何修復它。
那麼你的定義是錯誤的... – 2012-01-06 16:10:23
我會假設你已經這樣做了,因爲你正在運行命名衝突。在這一點上,我只是想說,「我希望你在創建類時忽略了關於忽略命名空間的教訓。」 – 2012-01-06 19:23:28