類對象作為類成員
- C++類中的成員可以是另一個類的對象,我們稱該成員為對象成員
例如:
class A {};
class B
{
A a;
}
- B類中有對象A作為成員,A為對象成員,那么當創建B對象時,A與B的構造和析構的順序是誰先誰后?
示例:
#include <iostream>
#include <string>
using namespace std;
class Phone
{
public:
Phone(string name)
{
m_PhoneName=name;
cout<<"Phone構造"<<endl;
}
~Phone()
{
cout<<"Phone析構"<<endl;
}
string m_PhoneName;
};
class Person
{
public:
//初始化列表可以告訴編譯器調用哪一個構造函數
Person(string name,string pName):m_Name(name),m_Phone(pName)
{
cout<<"Person構造"<<endl;
}
~Person()
{
cout<<"Person析構"<<endl;
}
void playGame()
{
cout<<m_Name<<"使用"<<m_Phone.m_PhoneName<< " 牌手機! " << endl;
}
string m_Name;
Phone m_Phone;
};
void test01()
{
//當類中成員是其他類對象時,我們稱該成員為 類對象
//構造的順序是:先調用對象成員的構造,在調用本類構造
//析構的順序與構造相反
Person p("張三","蘋果X");
p.playGame();
}
int main(void)
{
test01();
system("pause");
return 0;
}