成员初始化列表
2014-06-02 11:01
169 查看
如果classy是一个类,而mem1,mem2,mem3都是这个类的数据成员,而类构造函数可以使用如下的语法来初始化数据成员:
classy::classy(int n,int m):mem1(n),mem2(0),mem3(n*m+2)
{}
上述代码将mem1初始化为n,将mem2初始化为0,将mem3初始化为n*m+2.从概念上说,这些初始化工作时在对象创建时完成的,此时还为执行括号中的任何代码,注意以下几点:
1:这种格式只能用于构造函数。
2:必须用这种格式来初始化非静态const数据成员。
3:必须用这种格式来初始化引用数据成员。
数据成员被初始化的顺序与他们出现在类声明中的顺序相同,与初始化中的排列顺序无关。
警告:不能讲成员初始化列表语法用于构造函数之外的其他类方法。
对于const数据成员,必须在执行到构造函数之前,既创建对象时进行初始化,因此就有了成员初始化列表方法。
也可以在类内初始化:
class classy
{
int mem1=10;
const int mem2=0
};
这和构造函数成员初始化列表时相同的
classy::classy(int n,int m):mem1(n),mem2(0),mem3(n*m+2)
{}
上述代码将mem1初始化为n,将mem2初始化为0,将mem3初始化为n*m+2.从概念上说,这些初始化工作时在对象创建时完成的,此时还为执行括号中的任何代码,注意以下几点:
1:这种格式只能用于构造函数。
2:必须用这种格式来初始化非静态const数据成员。
3:必须用这种格式来初始化引用数据成员。
数据成员被初始化的顺序与他们出现在类声明中的顺序相同,与初始化中的排列顺序无关。
警告:不能讲成员初始化列表语法用于构造函数之外的其他类方法。
对于const数据成员,必须在执行到构造函数之前,既创建对象时进行初始化,因此就有了成员初始化列表方法。
也可以在类内初始化:
class classy
{
int mem1=10;
const int mem2=0
};
这和构造函数成员初始化列表时相同的
相关文章推荐
- C++成员变量初始化列表和变量初始化顺序
- 成员初始化列表
- C++学习记录14--C++成员初始化列表
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- 在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序。
- C++中使用初始化列表比在构造函数中对成员变量赋值更高效
- C++成员初始化列表
- C++中成员初始化列表的使用
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++中成员初始化列表的使用
- 类成员的初始化--成员初始化列表(常量,引用,成员对象)
- C++成员初始化列表
- 【警告:当在这里初始化时】初始化列表中成员变量初始化顺序问题
- 成员初始化列表
- <转载自刘佳ID:freedom0203和waret> C++中成员初始化列表的使用
- 类的成员变量 声明顺序 决定 初始化顺序(构造函数初始化列表不影响)
- C++初始化成员列表(member initialization list)
- C++成员初始化列表
- C++主题——成员初始化列表
- 九、构造函数和析构函数(三) 初始化列表、对象成员初始化、const,引用成员初始化