在单独的文件中创建类(初学者) 我对C++是很新的,我试图在一个单独的文件中创建一个类,我遇到了一个问题。我基本上是逐字逐句地抄袭了纽伯顿的教程。然而,这些东西不起作用。当我尝试运行主文件时,出现以下错误: 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 ===|

在单独的文件中创建类(初学者) 我对C++是很新的,我试图在一个单独的文件中创建一个类,我遇到了一个问题。我基本上是逐字逐句地抄袭了纽伯顿的教程。然而,这些东西不起作用。当我尝试运行主文件时,出现以下错误: 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 ===|,c++,class,static-libraries,C++,Class,Static Libraries,另外,当我创建类时。工作区图标单独存在,而它应该(我相信)包括刚刚创建的类的.cpp和.h文件夹 我的猜测是,我的路径设置不正确,但我不知道如何解决这个问题。有什么建议吗 以下是我正在使用的代码: 主文件(class_try.cpp) 玉米煎饼 #include "Burrito.h" #include <iostream> using namespace std; Burrito::Burrito() { cout<<"something silly"<

另外,当我创建类时。工作区图标单独存在,而它应该(我相信)包括刚刚创建的类的.cpp和.h文件夹

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

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

主文件(class_try.cpp)

玉米煎饼

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

using namespace std;

Burrito::Burrito()
{
    cout<<"something silly"<<endl;
}
#包括“Burrito.h”
#包括
使用名称空间std;
玉米煎饼
{

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

额外信息 下面的信息与这个问题没有直接关系(或者至少因为您使用的是Windows,所以看起来不是这样),但是如果您愿意的话,它旨在帮助您作为开发人员的成长

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


但是,我建议在尝试命令行编译器之前,您应该熟悉/熟悉通过IDE执行此过程。因为它通常是一个自动过程(即,大多数开发人员实际上都是为这类事情编写Makefile的),所以您不会真的损失太多(无论如何,立即)不要这样做。这只是在学习过程中需要注意的事项。

使用命令行编译器,您可以尝试以下操作:

g++ class_try.cpp Burrito.cpp -o executable_name
这将链接两个.cpp文件并创建一个可执行文件,您只需键入即可运行该可执行文件

./executable_name

看起来Burrito.o没有被链接。也许Burrito.cpp甚至没有被编译,你尝试过将它添加到项目中吗?非常感谢!我知道了,现在一切都正常了,谢谢你提供的额外信息。我相信你缺少了一个
-o
。我会做
g++class\u try.cpp Burrito.cpp-o可执行文件\u name
g++-std=c++11类\u try.cpp Burrito.cpp-o可执行文件\u名称
g++ class_try.cpp Burrito.cpp -o executable_name
./executable_name