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

一个比较低级的错误。

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
问题: undefined reference to 构造函数 回答: 这个错误通常发生在链接阶段,它表示编译器找不到构造函数的定义。你提到的引用内容包含了三个不同的类定义和构造函数的改动。根据你提供的信息,我假设你在编写一个C++程序,并尝试使用一个构造函数,但是编译器无法找到该构造函数的定义。 通常,当你在头文件中声明一个类和其成员函数时,你需要在对应的源文件中提供这些成员函数的定义。因此,在你的情况下,你的构造函数定义可能缺失或者没有正确引入。 为了解决这个问题,你可以检查以下几点: 1. 确保你的构造函数在源文件中被正确定义,即确保有对应的构造函数的具体实现。 2. 如果你的构造函数定义在源文件中,确保你正确引入了头文件,即确保你在源文件中使用了#include指令将头文件包含进来。 3. 确保你的构造函数符合正确的语法规则和命名规范。在你的引用内容中,有一个拼写错误(retunr),请务必检查和修正这样的错误。 如果你仔细检查并确保以上几点都没有问题,但仍然遇到这个错误,你可能需要进一步检查你的编译环境和编译选项。确保你的编译器和编译选项与你的平台和需求相匹配。 希望这些信息对你有帮助。如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [c++ undefined reference to 构造函数](https://blog.csdn.net/ynshi57/article/details/111825856)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [关于 c++ undefined reference to ‘类名::构造函数‘ 编译错误记录](https://blog.csdn.net/shengchanriqi/article/details/113589380)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值