用户操作
[发私信]  [加为好友] 
jq0123
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
jq0123的公告
XSTL封面 Locations of visitors to this page Codeguru Contributor
订阅 上海程序员
文章分类
热门文章
1 评“程序员怎么样才能保证自己的程序没有BUG”
2 C语言HTML解析器ekhtml的VC编译
3 log4cpp应用速成手册
4 一个hash_map使用错误
5 udp广播与直接广播
6 评“加班文化”对软件企业的危害
作者推荐
1 设计死了吗?
2 葵花宝典:软件开发高手是这样炼成的!
3 TCP截包分段重组的设计
4 Firefox的HTTP内容解压代码阅读
5 不可思议:using namespace无效!
6 作业调度问题深度搜索定界算法
7 智能机器人编程游戏robocode的运行代码简析
存档

原创  把private声明从.h文件移到.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(); }

发表于 @ 2007年11月09日 11:50:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:评高效程序员应该养成的七个习惯 | 新一篇:敏捷就是无招胜有招

Csdn Blog version 3.1a
Copyright © jq0123