C++如何降低文件之间的依存关系

C++中,使用handle classes(句柄类)的目的,是为了降低文件之间的编译依存关系。

摘自网上的一段话:

需要句柄类的背景:

1)在对安全要求很高的领域,即使核心实现已经封闭在库中不可见,但头文件中变量定义仍可能曝露一些内部信息
C
2)在设计初期、实现部分会经常变动,甚至头文件中变量定义也需要经常变动,因此在重编译的时候头文件也需要编译,有时候导致编译时间过长。 句柄类就是为了解决这类问题

比如,我有一个类Person,在很多地方都用到了这个类(#incude Person.h),在程序不断完善的过程中,难免会对该类进行重新设计或者一些修改。当Person.h被很多文件包含时,即使我们只是对Person类做了很小的改动,那么所有包含该头文件的文件,都需要重新编译,这会花费大量的无谓的时间,我想这是每一个编程人员都不希望看到的,为了解决此类问题的发生,我们便想到了句柄类。

设计思想:

我们把Person类设计成一个 handle class (句柄类),而重新定义一个新类 PersonImpl,作为具体的实现类,当然原本Person类中的成员变量,和成员函数的具体实现都放在PersonImpl类中。在Person类中定义一个指向PersonImpl类的指针,用于调用具体的实现。这样一来,当实现修改了,我们只需要重新编译Person文件即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值