前置声明

C++中前置声明的定义是什么,在代码中语法格式是什么。最重要的是,前置声明存在的作用或意义,这个语法存在,保证是为了解决某类或者某几类问题。

首先看下,前置声明的定义,或者说成语法格式是什么样?如下形式:

//a.h
class B;   
class A   
{  
 ....   
private:  
 B *b;   
}; 

大家如果在一个类的中定义另一个其他类型的成员变量时,例如A类中包含一个B类的成员变量,不管是实际类型(B b)还是指针类型(B *b),引用类型,此时我们会在A类的头文件中包含B类的头文件,例如#include"b.h",这是最常用,也是最方便的方法。但是假如A类定义包含一个B类的指针,且在头文件中没有对B类进行任何实际成员的调用,也就是没有B->method(),B->m_*的形式时,完全可以不引用B类的头文件,直接在A类定义前面声明class B,表示B类的存在。既然语法格式是这样的,那前置声明要解决什么样的问题呢?主要是两点:

  • 解决两个类互相包含的问题,也是我们使用前置声明最常解决的问题。
  • 解决编译依赖问题,防止某类的更改,导致包含该类其他类型重新编译。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值