文档章节

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

inkind
 inkind
发布于 2018/04/28 13:55
字数 151
阅读 19
收藏 0
C++

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

 

© 著作权归作者所有

inkind
粉丝 0
博文 15
码字总数 13374
作品 1
西安
程序员
私信 提问
C++11 之 " = delete "

1 缺省函数 设计一个类,没有成员函数 (member function),只有成员数据 (member data) class DataOnly {private: }; 1.1 特殊成员函数 C++98 编译器会为其隐式的产生四个函数:缺省构造函数...

follitude
2016/09/13
7
0
Effective C++ 资源管理小结

我发现,第一遍读书总是不能清楚的认识到问题的本质,我们还需要回过头去总结,因此,我决定以后每读一部分的书,写一点的总结,一方面可以让自己整理知识,另一方面方便以后对比思想。 资源...

长平狐
2012/11/12
75
0
Effective C++ Notes(读书笔记)

1,视C++为一种语言联邦,大致分为4个部分: A)C。说到底C++仍是以C为基础。区块、语句、预处理器、内置数据类型、数组、指针等等统统来自C。 B)Object-Oriented C++。这部分也就是C with ...

borey
2014/10/12
314
0
effective c++学习笔记

--------------------1让自己习惯c++----------------------------------------- Rule 1 : 把c++看做一个语言联邦,共有4个次语言:c(区块、语句、预处理器、内置数据类型、数组、指针);面...

firekido
2017/10/06
0
0
C++11 标准新特性:Defaulted 和 Deleted 函数

本文转自:http://www.ibm.com/developerworks/cn/aix/library/1212_lufang_c11new/index.html 简介: 本文将介绍 C++11 标准的两个新特性:defaulted 和 deleted 函数。对于 defaulted 函数,......

长平狐
2013/01/11
760
0

没有更多内容

加载失败,请刷新页面

加载更多

刚哥谈架构 (二) 我眼中的架构师

之前在公司,有小伙伴在向别人介绍我的时候,经常会有人这么说:“刚哥是我们的architcture”,如果来人是老外,心中一定是一惊,心中暗叹,“这位匪首看上去貌不惊人,难道已经做到了架构和...

naughty
31分钟前
2
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
59分钟前
84
3
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部