在C++中包含头文件(类定义和方法实现)

3
我已经查看了StackOverflow以寻找解决我的问题的方法,但我认为我可能漏掉了什么。我试图在头文件(.h)中定义一个类,并在cpp文件(.cpp)中实现它的方法,但它不起作用。
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 没有被链接,或者没有编译。 - Drew Dormann
我正在使用CodeBlocks(GNU GCC编译器),并带有以下标志:-O2,-ansi,-Wall和-pedantic。 - Vinícius Lopes Simões
CodeBlocks会显示正在运行的编译命令。请给我们看看。 - Drew Dormann
谢谢,我刚刚修复了它。这是一个编译错误,我通过进入“项目”->“属性”...->“构建目标”,然后选择底部部分中的所有文件来解决它! - Vinícius Lopes Simões
1个回答

2
使用命令 g++ -std=c++11 Message.cpp main.cpp 编译此代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接