Programming 版 (精华区)
原文(plpliuly于2001/06/12 20:12粘贴)
C++中常用的几个小技巧
------------------------------------------------------------------------
--------
也许只是一些技巧而已,不过值得反复重用就变成语言的Idioms了。(说到
Idioms,POSA认为Pattern可以分为三个层次(或者粒度),Architecture
patterns,Design patterns,Programming language Idioms。也就是说Idioms很多
是跟语言相关的)
1。实现抽象类(不允许实例化)
这个可能大家都知道,把构造函数声明为protected。(当然如果类中包含纯虚函
数自然就不能实例化,但是有的抽象类需要为虚函数提供缺省实现,因此可能不包
含纯虚函数)
2。实现final类(不允许被派生)
class CFinalHelper
{
private:
CFinalHelper(){};
friend class CFinalClass;
};
class CFinalClass:virtual public CFinalHelper
{
......
};
3.实现禁止拷贝构造和赋值操作符
class MyClass
{
...
private:
MyClass( const MyClass& );
const MyClass& operator=( const MyClass& );
};
为了防止成员函数调用操作,这两个函数应该只有声明没有实现。
C++中的Idioms很多很多,比如TypeTraits,SmartPointer这些都可以视为经典的
Idioms。
结束语:这个贴子纯粹是临时拼凑的,为什么急于发文,实在是觉得这个小组的
话题偏的有点离谱了。我觉得还是在一个地方就做适合这个地方的事情比较好。
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 天外飞仙]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.338毫秒