初始化列表
语法:类名():成员属性1(值1),成员属性2(值2)…
{函数体}
class Person{
string name;
int age;
public:
Person(string _name,int _age):name(_name),age(_age){
}
};
类作为成员
语法:
class A{
.
.
.
};
class B{
A a;
.
.
};
注意事项:
- 在A作为B的成员时,对B进行实例化,先调用A的构造函数,再调用B的构造函数。释放时,先调用B的析构函数,再调用A的析构函数。
class Person{
string name;
int age;
public:
Person(string _name,int _age):name(_name),age(_age){
cout<<"人的构造函数"<<endl;
}
~Person(){
cout<<"人的析构函数"<<endl;
}
};
class Student{
string school;
Person p;
public:
Student(string _name,int _age,string _school):school(_school),p(_name,_age){
cout<<"学生的构造函数"<<endl;
}
~Student(){
cout<<"学生的析构函数"<<endl;
}
};
.
.
Student s("killer",23,"university");
结果: