MyMSDN

MyMSDN记录开发新知道

两个有用的宏:“禁止类成员复制”以及“禁止隐式构造”

禁止类成员复制,其核心就在于不允许类外部看见复制函数,包括“拷贝构造函数”、“operator =重载”。

#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
private:                     \
TypeName(const TypeName&);               \
TypeName& operator=(const TypeName&)
禁止隐式构造,则可以将默认构造函数隐藏起来,在大多数编译器中也可以对构造函数增加explicit关键字来避免隐式构造。
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
private:                     \
TypeName();                                    \
DISALLOW_COPY_AND_ASSIGN(TypeName)
更多解释详见《More Effective C++》

posted on 2010-08-11 00:34 volnet 阅读(1411) 评论(1)  编辑 收藏 引用 所属分类: C/C++

评论

# re: 两个有用的宏:“禁止类成员复制”以及“禁止隐式构造” 2010-08-29 17:27 evening dresses

样编译 dsa  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


特殊功能