You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

拆分代码为头文件与cpp文件后,纯虚函数出现未定义引用错误

解决Book类成员函数未定义引用错误

这个错误属于链接阶段问题:拆分代码后,编译时只处理了main.cpp,但没有将classes.cpp的编译结果纳入链接流程,导致链接器找不到Book::getData()和Book::putData()的具体实现。

解决方法

命令行编译(以GCC为例)

将所有cpp文件一起编译链接,生成可执行文件:

g++ main.cpp classes.cpp -o book_app

执行生成的程序:

  • Linux/macOS:./book_app
  • Windows:book_app.exe

IDE环境编译

如果使用VSCode、Code::Blocks、Visual Studio等IDE,确保classes.cpp已经被添加到项目的编译文件列表中。多数IDE会自动识别同目录下的cpp文件,但如果是手动添加的文件,需要检查项目配置,确认该文件未被排除在编译流程外。

补充说明

拆分头文件与cpp文件后,每个cpp文件会被单独编译为目标文件(.o或.obj)。链接器需要将所有相关目标文件合并,才能找到函数的实现代码,否则就会抛出"未定义引用"的错误。

内容的提问来源于stack exchange,提问作者Saif eldeen Adel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 16:25:54