被委派的构造函数的初始化列表执行阶段
来源:互联网 发布:下载蜜蜂软件 编辑:程序博客网 时间:2024/05/20 05:27
c++中,构造函数初始化列表中的值用于初始化类内成员,而构造函数函数体需要在所有类内成员初始化完成后执行。那么调用委托构造函数,其被委托构造函数的初始化列表是否用于类内成员初始化呢?
首先查阅了 ISO/IEC C++11 标准文档,其中规定:
12.6.1 Explicit initialization [class.expl.init]
6. Once the target constructor returns, the body of the delegating constructor is executed.此条说明了执行顺序,但是没有回答我的问题。在标准文档找了很久,也找不到相关解答,只能写个程序看看了。
用下面代码测试:
#include<iostream>using std::cout;using std::endl;class class_a{public:class_a(int x):a(x),b(x){}class_a():class_a(999){}int show_b(){return b;}private:int a;const int b;};int main(){class_a object_a;cout<<"\n"<<object_a.show_b()<<endl; return 0;}
输出为999. 这样的话在此编译器下(g++ 5.3.0 -std=c++11 -Wall) 调用委托构造函数后,被委托构造函数的初始化列表的确用于类内成员初始化.
//TODO 以后学的更加深入我在回头看这个问题
0 0
- 被委派的构造函数的初始化列表执行阶段
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- 构造函数的初始化列表
- C++ 构造函数初始化列表的好处
- 说说构造函数的初始化列表.
- C++的构造函数初始化列表
- 构造函数的成员初始化列表
- c++构造函数的初始化列表
- 直接运行java类来调用webservce接口时发生错误
- 求指定区间内与n互素的数的个数 容斥原理
- 消息中间件-activemq实战整合Spring之Topic模式(五)
- uboot中gd_t和bd_t数据结构简介
- 作业五-数组
- 被委派的构造函数的初始化列表执行阶段
- Redis的个人使用经验总结
- Javascript 获取行间样式与非行间样式
- Python处理大文件
- C# Winform 防止子窗体重复打开
- 大菠萝实习日记(1)
- mysql(四)Innodb的聚簇索引
- Java多线程与网络编程
- 数据库事务与锁