我收到错误:"未定义引用'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
Run Code Online (Sandbox Code Playgroud)
主要:
#include "header.h"
int main()
{
yClass a;
system("PAUSE");
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
你已经声明了yClass的构造函数,但没有定义它.或者,如果您已在另一个文件(即与"header.h"对应的.cpp文件)中定义它,那么您还没有与之链接.
初始化main中的对象时使用构造函数,因此必须存在其定义.相反,"一"和"两"方法从不被调用,因此实际上并不需要对它们进行定义.
从未定义构造函数的简单修复是在类定义中定义它:
struct yClass {
yClass() : a(), b() {}
private:
int a, b;
};
Run Code Online (Sandbox Code Playgroud)
如果问题是您已定义构造函数但未与定义链接,则需要将其他转换单元(".cpp文件")添加到makefile,项目,命令行等.