在单独的文件中创建类(初学者)

时间:2012-04-30 13:36:19

标签: c++ class static-libraries

我对C ++很陌生,我试图在一个单独的文件中创建一个类,我遇到了一个问题。我基本上从newboston逐字复制教程http://thenewboston.org/watch.php?cat=16&number=15。但是,对于事情不起作用。我在尝试运行主文件时收到此错误:

C:\Users\Akavall\Desktop\C++ Stuff\New C++ stuff\class_try.o:class_try.cpp|| undefined reference to `Burrito::Burrito()'|
||=== Build finished: 1 errors, 0 warnings ===|

另外,当我创建课程时。 工作区图标是独立的,而它应该(我相信)包含刚刚创建的类的.cpp和.h文件夹。

我的猜测是我的路径在某处设置不正确,但我不知道如何解决这个问题。有什么建议吗?

以下是我正在使用的代码:

主文件(class_try.cpp)

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

using namespace std;

int main()
{

    Burrito bo;
    return 0;
}

班级档案: Burrito.h

#ifndef BURRITO_H
#define BURRITO_H

class Burrito
{
    public:
        Burrito();

};

#endif // BURRITO_H

Burrito.cpp

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

using namespace std;

Burrito::Burrito()
{
    cout<<"something silly"<<endl;
}

我该怎么做才能解决这个问题?

提前感谢

编辑:

我正在使用CodeBlocks,我使用的是32位Windows。

2 个答案:

答案 0 :(得分:2)

如果您使用MSVC,就像您链接的教程一样,则需要先创建一个项目。创建项目后,添加要包含/编译的所有头(.h)和源(.cpp / .cxx)文件。现在,MSVC从这一点开始就很容易了;你可以简单地编译(只要一切都正确地添加到你的项目中),它将为你编译东西。

额外信息 以下信息与此问题没有直接关系(或者至少在您使用Windows时似乎不是这样),但如果您需要,它可以帮助您成长为开发人员。

但是,如果您决定使用命令行编译器(即MingW)或在* nix环境中工作,请务必注意您需要显式编译每个对象(无需链接;在gcc / mingw中flag是-c)。然后在编译几个未链接对象的最后,将所有对象和主源文件一起编译(这次链接),它将创建一个可执行文件。

但是,在尝试使用命令行编译器之前,我建议您熟悉通过IDE执行此过程。因为它通常是一个自动化的过程(即大多数开发人员最终都会为此类事情编写Makefile),但实际上你不会因为不这样做而失去太多(不管怎样)。在你学习的时候,这是你需要注意的事情。

答案 1 :(得分:1)

使用命令行编译器可以尝试:

g++ class_try.cpp Burrito.cpp -o executable_name

这将链接您的两个.cpp文件并创建一个可执行文件,您只需键入

即可运行该可执行文件
./executable_name