2015-08-15 88 views
3

我已經檢查過StackOverflow來找到我的問題的解決方案,但我想我可能會丟失一些東西。我試圖在一個頭文件(.h)中定義一個類並在一個cpp文件(.cpp)中實現它的方法,但它不起作用。在C++中包含頭文件(類定義和方法實現)

main.cpp中:

#include <iostream> 
#include "Message.h" 

using namespace std; 

int main() 
{ 
    Message *t = new (Message); 

    t->display(); 

    return 0; 
} 

Message.h:

#ifndef MESSAGE_H_INCLUDED 
#define MESSAGE_H_INCLUDED 

class Message { 
public: 
    void display(); 
}; 

#endif // MESSAGE_H_INCLUDED 

Message.cpp:

#include "Message.h" 

void Message::display() { 
    cout << "Hello!"; 
} 

我不明白爲什麼我不斷收到以下錯誤

undefined reference to 'Message::display()' 
+3

你如何編譯這個? – imreal

+3

你的代碼是正確的(除了內存泄漏)。 Message.cpp沒有被鏈接 - 可能未被編譯。 –

+0

我正在使用CodeBlocks(GNU GCC編譯器),並帶有以下標誌:-O2,-ansi,-Wall和-pedantic –

回答

2

用命令編譯g++ -std=c++11 Message.cpp main.cpp