事情是这样的:
写了一个普通的类,基本的实现都在头文件中,
// data.hpp
class data
{
public:
data();
virtual ~data(){}
public:
int func1() { retunr 1+1; }
}
我在另外一个类中new 这个data类,但是报错了 “ undefined reference to “data::data()”
意思就是无法调用你的构造函数。
开始一头雾水,后来才发现,因为我没有创建源文件并且没有在源文件中实现构造函数,哪怕构造函数中什么也不干。
如果功能比较简单, 一个头文件就够了,那么也就是把上面的构造函数data();改成data(){}
// data.hpp
class data
{
public:
data() {}
virtual ~data(){}
public:
int func1() { retunr 1+1; }
}
这个问题按理说比较好解决,但在找问题上花了些时间,说明对c++的语法理解不透。
一个比较低级的错误。