为什么我得到一个链接错误
Why am I getting a linker error?
我得到错误:"未定义的引用'yClass::yClass()'
当试图在main中创建类的实例时。有人知道为什么吗?
头:#ifndef header_h
#define header_h
#include <cstdlib>
#include <iostream>
using namespace std;
class yClass
{
public:
void one();
void two(int,int);
yClass();
private:
int a;
int b;
};
#endif
主:#include "header.h"
int main()
{
yClass a;
system("PAUSE");
return EXIT_SUCCESS;
}
您已经声明了yClass的构造函数,但还没有定义它。或者,如果你在另一个文件中定义了它(即对应于"header.h"的.cpp文件),那么你就没有链接到它。
构造函数在初始化main中的对象时使用,因此必须提供其定义。相比之下,"one"answers"two"方法从不被调用,因此实际上不需要为它们定义。
没有定义构造函数的一个简单修复方法是在类定义中定义它:
struct yClass {
yClass() : a(), b() {}
private:
int a, b;
};
如果问题是您已经定义了构造函数,但没有与定义链接,那么您需要将其他翻译单元(".cpp文件")添加到您的makefile,项目,命令行等
因为您声明了yClass的构造函数(和其他函数),但没有实现它们。
你在哪里定义了yClass?除非你#include "yclass.cpp
或者在包含yclass的库中的链接,仅仅包括头文件是不够的
相关文章:
- Qt creator 4.11,在应用程序输出面板中创建一个链接
- glutBitmapCharacter()给出一个链接错误c++
- 如何合并两个双重链接列表(访问下一个链接)
- 链接在与另一个链接的库中链接
- 如何将不同类型的节点存储在一个链接列表中
- 比较一个链接列表与另一个黑名单与词频列表C++
- 我可以创建一个链接另一个库但不依赖于其include的c++库吗
- 为什么当你不定义函数时,你会得到一个链接器错误而不是编译器?
- 另一个链接器错误
- 一个链接节点,在一个节点中有两个项目
- CMake:在静态库上设置一个链接器标志,供用户在链接时使用(Visual Studio)
- 为什么我得到一个链接错误
- 当尝试使用静态ifstream成员和附带的函数时,我得到一个链接器错误
- 为什么这会给我一个链接器错误?(使用随机数生成<random>)
- -I和-L和-L都是正确的,但我仍然得到一个链接错误
- 我收到一个链接器错误,我不理解 VC++ 和 FLTK
- 我的树节点缺少一个链接
- C++ 你好世界不会编译?似乎是一个链接问题...
- 从一个链接对象到另一个链接对象的访问
- 为什么我得到一个链接错误