构造函数初始化列表是以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个数据成员后面跟一个放在圆括号里的初始化式。
---没有默认构造函数的类类型的成员,以及const或引用类型的成员,不管是哪种类型,都必须在构造函数初始化列表中进行初始化。
---每个成员在构造函数初始化列表中只能指定一次,构造函数初始化列表仅指定用于楚书华成员的值,并不指定这些初始化执行的次序,且成员被初始化的次序就是定义成员的次序。
---类的成员变量按其在类中声明顺序依次被初始化,而与其在初始化表中的顺序无关
#include "stdafx.h" #include <iostream> #include<string> using namespace std; class Student { public: //Student (const string& name = "" , int age =0):m_name(name),m_age(age){} Student(const string& name,int age):m_name(name),m_age(age){} void who() { cout << m_name << endl << m_age <<endl; } string m_name; int m_age; }; int _tmain(int argc, _TCHAR* argv[]) { Student s1("张飞", 25); s1.who(); system("pause"); return 0; }