初学者使用对象和类得到以下错误

0x4*_*2D2 0 c++ codeblocks

这是我一直在关注的教程,我已经完成了它所说的一切,但它不起作用。我有三个文件:main.cpp、burrito.h(类)和 burrito.cpp。

这里分别是三个文件。

主程序

#include <iostream>
#include "Burrito.h"
using namespace std;

int main() {

    Burrito bo;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

墨西哥卷饼

#ifndef BURRITO_H
#define BURRITO_H


class Burrito {
    public:
        Burrito();
};

#endif // BURRITO_H
Run Code Online (Sandbox Code Playgroud)

墨西哥卷饼

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

using namespace std;

Burrito::Burrito() {
    cout << "Hello World" << endl;
}
Run Code Online (Sandbox Code Playgroud)

当我构建并运行时,出现以下错误:

...undefined reference to `Burrito::Burrito()'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 6 seconds)
1 errors, 0 warnings
Run Code Online (Sandbox Code Playgroud)

我正在使用 CodeBlocks 进行编译。

Kon*_*lph 5

我正在使用代码块

这是问题。

如果您开始学习 C++,那么(不幸的是)了解翻译单元是必不可少的。像 Code::Blocks 这样的 IDE 向你隐藏了这个细节——在这种情况下它做错了(虽然这并不是 Code::Blocks 的错,它不能在没有配置的情况下自动猜测在这种情况下要做什么)。

一开始,放下IDE,进入命令行进行编译。分别编译两个翻译单元并将它们显式链接在一起。

g++ -o burrito.o burrito.cpp
g++ -o main.o main.cpp
g++ -o main main.o burrito.o
Run Code Online (Sandbox Code Playgroud)

每本优秀的 C++ 初学者书籍都会解释它是如何工作的。