error: incomplete type ‘’ used in nested name specifier

本文详细解析了在C++编程中,当两个头文件相互包含对方定义的模板类时,如何正确地声明和包含这些类以避免编译错误。通过实例展示了在Ubuntu16.04环境下,使用CLion2018编译器时,如何通过在头文件中互相声明对方的类来解决此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

error: incomplete type ‘’ used in nested name specifier

内容

出现这个错误的原因是:

在A.h中定义了一个类模版,并且在A.h中需要#include “B.h”(即,需要知道B的定义)
而在B.h中又使用了A.h中定义的模版,因此也需要#include “A.h”(即,又需要知道A的定义)

头文件相互包含,不但要用到#include,而且还要分别声明要用到的类。
比如A.h中,添加#include"B.h",而且要添加class B;B.h中也是一样,否则就报错。

本人机器开发环境

  • ubuntu 16.04
  • CLion 2018

相关/参考链接

https://www.cnblogs.com/justinyo/archive/2013/02/19/2917631.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值