c++ undefined reference to 构造函数

事情是这样的:

写了一个普通的类,基本的实现都在头文件中,

// 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++的语法理解不透。

一个比较低级的错误。

猜你喜欢

转载自blog.csdn.net/ynshi57/article/details/111825856
今日推荐