clion源文件已经删除但是还是编译出这个文件

文章讲述了在C++中,当子类仅包含父类的头文件而不包含实现文件时,会导致编译错误。提供了解决方案,包括确保父类实现文件的包含、CMake配置以及检查编译器错误信息。
摘要由CSDN通过智能技术生成

当在C++中子类继承父类时,如果只包含了父类的头文件而没有包含父类的实现文件,编译时会报错。这是因为编译器需要找到父类函数的实现以便生成对应的代码。解决这个问题的方法是确保父类的函数实现也被包含在编译过程中。

以下是一种解决方法:

  1. 将父类的实现文件包含在项目中:确保父类的实现文件被包含在项目中,以便编译器可以找到父类函数的实现。通常情况下,父类的实现会被写在.cpp文件中,你需要将这些.cpp文件添加到项目中。

  2. 在CMakeLists.txt中添加父类的实现文件:如果你使用CMake来构建项目,确保在CMakeLists.txt文件中包含了父类的实现文件。例如,可以使用add_executableadd_library命令将父类的实现文件添加到可执行文件或库的构建中。

  3. 确保正确链接父类的实现文件:在构建可执行文件或库时,确保链接了父类的实现文件,以便编译器可以找到父类函数的定义。

  4. 检查编译器输出的错误信息:如果仍然出现编译错误,查看编译器输出的详细错误信息,以确定哪些函数的定义缺失,从而更好地定位和解决问题。

通过以上方法,你应该能够解决子类继承父类时编译报错的问题。记得在编译前检查父类的头文件和实现文件是否都被正确包含,并确保正确链接父类的实现文件。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值