作用:C++提供了初始化列表语法,用来初始化属性。
语法:构造函数():属性1(值1),属性2(值2)....{}
#includeusing namespace std; //初始化列表 //语法:构造函数():属性1(值1),属性2(值2)....{} class Person{ public: Person():m_A(10),m_B(30),m_C(20){} int m_A; int m_B; int m_C; }; int main(int argc,char *argv[]) { //Person p1(10,30,20); Person p1; cout << "m_A = " << p1.m_A << endl; cout << "m_B = " << p1.m_B << endl; cout << "m_C = " << p1.m_C << endl; return 0; }
类对象作为类成员。
C++中类中成员可以是另外一个类的对象,我们称该成员为对象成员。
例如:
class A{
};
class B{
A a; //对象成员
};
当其他类的对象作为本类的成员,构造时先构造对象,再构造自身,析构的顺序与构造相反。
#includeusing namespace std; //类对象作为类成员 //手机类 class Phone{ public: Phone(string name) { m_PName = name; cout << "Phone的有参构造函数的调用" << endl; } ~Phone() { cout << "Phone的析构函数的调用" << endl; } string m_PName; //手机品牌的名称 }; //人类 class Person{ public: Person(string name,string p_Name):m_Name(name),m_Phone(p_Name) { cout << "Person的有参构造函数的调用" << endl; } ~Person() { cout << "Person的析构函数的调用" << endl; } string m_Name; //姓名 Phone m_Phone; //手机品牌名称 对象成员 }; int main(int argc,char *argv[]) { Person p("张三","小米"); cout << p.m_Name << "拿着" << p.m_Phone.m_PName << endl; //当其他类的对象作为本类的成员,构造时先构造对象,再构造自身,析构的顺序与构造相反。 return 0; }



