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

原创
2018/04/28 13:55
阅读数 213

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

#define DISALLOW_COPY_AND_ASSIGN(TypeName) \

private:                     \

TypeName(const TypeName&);               \

TypeName& operator=(const TypeName&)

2、禁止隐式构造,则可以将默认构造函数隐藏起来,在大多数编译器中也可以对构造函数增加explicit关键字来避免隐式构造。

#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \

private:                     \

TypeName();                                    \

DISALLOW_COPY_AND_ASSIGN(TypeName)

更多解释详见《More Effective C++》

3、可继承Boost库的boost::noncopyable类实现类似功能。

 

展开阅读全文
C++
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部