amo*_*eba 0 c++ header class object include
我在更大的程序中构建类的实例时遇到问题.
在我的主要功能:
//main.cpp
#include "MyClass.h"
MyClass aMyClass;
//do stuff with MyClass
Run Code Online (Sandbox Code Playgroud)
MyClass'标题在这一点上只是一个构造函数,看起来像这样:
//MyClass.h
class MyClass {
public:
MyClass();
};
Run Code Online (Sandbox Code Playgroud)
然后,MyClass的源代码如下所示,此时只是一个构造函数:
//MyClass.cpp
#include "MyClass.h"
//--CONSTRUCTOR--//
MyClass::MyClass(){
cout << "constructing MyClass object..." << endl;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行我的程序时,我收到此错误:
undefined reference to `MyClass::MyClass()'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
编辑: 我正在使用命令行使用以下命令编译程序:
g++ main.cpp -o mainProgram
Run Code Online (Sandbox Code Playgroud)
编辑(已解决): 编译需要包含MyClass.cpp,正确的命令是:
g++ man.cpp MyClass.cpp -o mainProgram
Run Code Online (Sandbox Code Playgroud)
虽然我确定它很小,我在哪里滑倒?我已尝试在程序的早期声明对象,但这并没有解决问题,我得到了同样的错误.
有没有人在这看到问题?
你还需要编译MyClass.cpp - 这就是实现的地方.
g++ main.cpp MyClass.cpp -o mainProgram
Run Code Online (Sandbox Code Playgroud)