博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个有用的宏:“禁止类成员复制”以及“禁止隐式构造”
阅读量:6909 次
发布时间:2019-06-27

本文共 465 字,大约阅读时间需要 1 分钟。

hot3.png

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类实现类似功能。

 

转载于:https://my.oschina.net/u/988775/blog/1802739

你可能感兴趣的文章
Python--day25--面向对象之多态
查看>>
submit
查看>>
数据结构-----树状数组
查看>>
那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)...
查看>>
测试DOM0级事件和DOM2级事件的堆叠
查看>>
违章查询源码分享
查看>>
mac终端下svn常用命令
查看>>
C++的lambda表达式
查看>>
新手学习python(十六)封装redis
查看>>
vue移动端弹框组件
查看>>
vuex
查看>>
vux 全局使用 loading / toast / alert
查看>>
面向对象数组操作
查看>>
【杂题】[LibreOJ #6608] 无意识的石子堆【容斥原理】【FFT】
查看>>
jq与原生js实现收起展开效果
查看>>
JS开发中自定义调试信息开关
查看>>
p3302 [SDOI2013]森林(树上主席树+启发式合并)
查看>>
我的 FPGA 学习历程(06)—— 二进制转格雷码
查看>>
书摘<<互联网世界观>>
查看>>
Running Intel® HAXM installer
查看>>