博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++类默认生产的函数
阅读量:6707 次
发布时间:2019-06-25

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

C++默认生成4个成员函数.

默认构造函数(default constructor), 析构函数(destructor), 复制构造函数(copy constructor), 赋值构造函数(assignment);

C++11新增两个:

move构造函数(右值引用构造函数)

move赋值函数

如果满足位逐次拷贝(bitwise copy semantics),上述一个都不会生成

没有bitwise copy semantics的四种情况:

1、member object的声明有一个copy constructor,不论是否是自动生成。

2、继承的base class的声明有一个copy constructor,不论是否是自动生成。

3、class有虚函数

4、父类有虚函数

上述情况是因为:

class Animal{virtual void XXX(){}};class Bear : public Animal{    void XXX(){}};Bear b;Animal a = b;/*如果单纯的bitwise copy,那么a就会指向Bear的vptr。a已经丢弃了b的部分属性,调用b的函数将会blow up*/

转载地址:http://swslo.baihongyu.com/

你可能感兴趣的文章
国际化环境下系统架构演化
查看>>
openlayers入门开发系列之批量叠加zip压缩SHP图层篇
查看>>
Javascript调用Webservice的多种方法 .
查看>>
Linux 启动、关闭、重启网络服务
查看>>
Sublime Text 相关
查看>>
深入理解css优先级
查看>>
android的armeabi和armeabi-v7a
查看>>
android自己定义控件系列教程-----仿新版优酷评论剧集卡片滑动控件
查看>>
lvs之 lvs+nginx+tomcat_1、tomcat_2+redis(lvs dr 模式)
查看>>
让“是男人就下到100层”在Android平台上跑起来
查看>>
hdu4292Food(最大流Dinic算法)
查看>>
webdriver API study
查看>>
【Machine Learning in Action --4】朴素贝叶斯过滤网站的恶意留言
查看>>
Ubuntu+Eclipse+ADT+Genymotion+VirtualBox开发环境搭建
查看>>
Android 学习之 开源项目PullToRefresh的使用
查看>>
Matplot中文乱码完美解决方式
查看>>
tomcat的webappclassloader中一个奇怪的异常信息
查看>>
漫谈程序猿系列:群星闪耀的黄金时代
查看>>
2016百度编程题:蘑菇阵
查看>>
webpack系列之一总览
查看>>