c++设计中的几种机制

1、PIMPL

私有化实现。解决头文件依赖,文件修改后整个系统需要重新编译的问题。他实现的是一个简单的桥接模式。在类中指针初始化的空间是固定的,不需要知道其具体的类型,所有采用前置声明的方式,可以不需要在头文件中引用他的头文件。这样即隐藏了引用类的实现细节,又减少了编译时文件修改后的编译关联性。

2、NVI

提供一个公有的非虚接口函数,将虚函数私有化。实现行为和接口的分离。因为虚函数的多态性,公有非虚函数自然会去调用相应的虚函数实现。通过对虚函数的包装达到对接口与实现分离的效果。

3、RAII

保证析构函数总是正确被执行。借助函数栈原理,在申明周期结束的时候自动销毁,执行析构。在类的构造函数中申请资源,在析构函数中释放资源。也就是说局部资源对象实例应该尽量分配在栈上而不是堆上,或者使用智能指针。智能指针使用时本身初始化在栈上,保证了在生命周期区域结束时正确的释放资源。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值