九、构造函数和析构函数(三) 初始化列表、对象成员初始化、const,引用成员初始化
来源:互联网 发布:win8磁盘优化无法打开 编辑:程序博客网 时间:2024/05/18 21:41
一、构造函数初始化列表
构造函数的执行分为两部分,首先执行初始化段,在执行{}内的普通计算段。推荐在构造函数初始化列表中进行初始化,这样执行效率比较高。
class Test{public:Test(int a,int b,int c) :x(a),y(b),z(c){}//在初始化列表中初始化,效率较高,若在计算段{ x=a; y=b; z=c; },调用赋值操作,效率较低private:int x;int y;int z;};int main(){Test(1,2,3);}
二、对象成员及其初始化
对象成员的初始化必须在初始化列表中初始化,如下:
class Object{public:Object(int num) : num_(num){cout<<"Object "<<num_<<" ..."<<endl;}~Object(){cout<<"~Object "<<num_<<" ..."<<endl;}private:int num_;};class Test{public:Test(int a,int b) :x(a),obj(b){}private:Object obj;int x;};int main(){Test(1,2);}在有对象成员的类中,先调用对象成员的构造函数初始化对象成员,在初始化类自身。
三、const成员、引用成员初始化
因为const成员、引用成员在声明时必须被初始化,所以类成员中的const成员和引用成员也必须在初始化列表中初始化。
class Test{public:Test(int a,int b) :x(a),ref(b){cout<<"const x="<<x<<endl<<"refrence ref="<<ref<<endl;}private:const int x;int& ref;};int main(){Test(1,2);}
0 0
- 九、构造函数和析构函数(三) 初始化列表、对象成员初始化、const,引用成员初始化
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
- 成员初始化列表和构造函数体初始化的区别
- c++构造函数成员初始化赋值和初始化列表
- 成员初始化列表 const 和引用
- 构造函数初始化const成员变量
- 构造函数的成员初始化列表
- C++构造函数初始化成员列表
- 必须在构造函数的成员初始化列表里初始化
- 学习笔记:数组成员初始化于构造函数初始化列表
- 成员初始化列表和构造函数体中的区别
- 成员初始化列表和构造函数体中的区别
- 成员初始化列表和构造函数体中的区别
- 成员初始化列表和构造函数体中的区别
- 成员初始化列表和构造函数体中的区别
- c++成员初始化和构造函数
- ios 常用第三方库
- C# 与 C++ 数据类型对照表
- POJ2726 Holiday Hotel ACM解题报告(贪心)
- android app 自动更新
- android4.2 -- 蓝牙 bluetooth (二) 打开蓝牙
- 九、构造函数和析构函数(三) 初始化列表、对象成员初始化、const,引用成员初始化
- Ubuntu下视频的处理
- 生成一维码的方法(用这个的原因是因为它所用的依赖是可以在maven中央仓库能找到的,不用付费的)
- 机械硬盘内部硬件结构和工作原理详解
- Entity Framework6 with Oracle(可实现code first)
- DTD简介入门
- java远程方法调用(简单入门)
- 简单的a,b变量交换问题,不使用中间变量
- android4.3 -- 蓝牙 bluetooth (三)搜索蓝牙