成员对象
成员对象:当一个类的成员是另一个类的对象时,这个对象就叫成员对象。
成员对象的构造与析构
1、出现成员对象时,如果成员对象的构造函数是有参构造函数,则该类的初始化列表需要对成员对象进行初始化。
class Member
{
private:
int i;
public:
Member(int i)
{
this->i = i;
}
};
class Test
{
private:
Member member;
public:
Test(): member(1)
{
}
};
2、一个有成员对象的类实例化时要先调用成员对象的构造函数,然后再调用该类的构造函数,析构时先调用该类的析构函数,再调用成员对象的析构函数。
#include <iostream>
class Member
{
public:
Member()
{
std::cout << "Member构造函数" << std::endl;
}
~Member()
{
std::cout << "Member析构函数" << std::endl;
}
};
class Test
{
private:
Member member;
public:
Test()
{
std::cout << "Test构造函数" << std::endl;
}
~Test()
{
std::cout << "Test析构函数" << std::endl;
}
};
int main()
{
Test* test = new Test();
delete test;
return 0;
}
运行结果:
Member构造函数
Test构造函数
Test析构函数
Member析构函数