我在hpp文件中定義了一個類,我試圖在另一個頭中使用它,所以我向它做了一個前向聲明(我只想通過引用將它用作函數參數) 。出於某種原因,我不斷收到編譯錯誤,因爲它。我無法弄清楚它爲什麼不起作用。這裏是我的代碼:C++中的前向聲明錯誤
//something.hpp:
class MyClass;
void someFunction (MyClass& mc);
...
//something.cpp:
#include "MyClass.hpp"
void someFunction (MyClass& mc) {...}
...
//MyClass.hpp:
class MyClass {
const char* myText;
public:
MyClass (const char* text) : myText(text) {}
};
//main.cpp:
int main() {
...
someFunction (MyClass ("some text here"));
...
}
我從主(),它說,得到一個錯誤:
'<function-style-cast>' : cannot convert from 'const char [15]' to 'MyClass'
Source or target has incomplete type
如果我的理解是正確的,這意味着編譯器未找到MyClass的定義,只有它的預先聲明(即使我將MyClass.hpp包含在something.cpp中),這就是爲什麼它說它不完整。我在這裏錯過了什麼?
您需要在main.cpp中包含MyClass.hpp。 – juanchopanza 2015-04-03 08:21:26