构造函数初始化列表

构造函数初始化列表是以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个数据成员后面跟一个放在圆括号里的初始化式。

---没有默认构造函数的类类型的成员,以及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;
}
原文地址:https://www.cnblogs.com/day-up/p/5149575.html