把private声明从.h文件移到.cpp文件

C++ Pimpl模式详解
本文介绍了如何在C++中使用Pimpl模式来隐藏类的私有实现细节,通过将私有成员移至.cpp文件中,不仅可以提高封装性,还能减少头文件依赖,加快编译速度。
把private声明从.h文件移到.cpp文件

(转载请注明来源于金庆的专栏)

在*.h文件中定义一个类时,理论上应该仅定义其公共接口,而不必声明其私有的成员,因为私有的成员属于实现部分,理应声明在.cpp文件中。

可是现有的C++标准是不支持将一个类的定义分到两个文件中去的。

有一个pimpl模式,可以变相完成这个要求,只暴露公共接口,而实现定义为私有。pimpl 即 private implemention 的缩写。不光封装性好,还可以减少头文件依赖,提高编译速度。

例如:(来自: 关于handle-body的用法及loki::PimplT的分析

/*.h*/
class CTest
{
public:
void Test();
private:
Loki::PimplT::Type m_impl;
};

/*.cpp*/
template<>
struct Loki::ImplT
{
public:
void Test() { std::cout << "test" << std::endl; }
};

void CTest::Test() { return m_impl->Test(); }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值