1. 程式人生 > 其它 >C++:類物件作為類成員

C++:類物件作為類成員

技術標籤:c++學習筆記

C++類中的成員可以是另一個類中的物件,我們稱該成員為 物件成員
例如:

class A{};
class B
{
    A a;
};

B類中有物件A作為成員,A為物件成員
那麼當建立B物件時,A與B的構造和析構的順序誰先誰後?

舉例:

class Phone
{
public:

    Phone(string pName)
    {
        m_Pname = pName;
    }

    //手機品牌名稱
    string m_Pname;
};
class Person
{
public:
    Person(string name,
string pName):m_name(name),m_phone(pName)//相當於Phone m_phone = pName,即隱式轉換法 { } //姓名 string m_name; //手機 Phone m_phone; }; void test01() { Person p("ss", "iPhone"); cout << p.m_name << "拿著" << p.m_phone.m_Pname <<
endl; }

執行結果:
在這裡插入圖片描述

那麼,現有的人還是現有的手機呢?
列印輸出一下:

Phone(string pName)
    {
        cout << "Phone的建構函式呼叫" << endl;
        m_Pname = pName;
    }
  Person(string name, string pName):m_name(name),m_phone(pName)//相當於Phone m_phone = pName,即隱式轉換法
    {
        cout << "Person的建構函式呼叫"
<< endl; }

再次執行結果:
在這裡插入圖片描述
可以看到,先建立的手機,再建立的人。
即:當其他類的物件作為本類的成員,在構造時先構造其他類物件,再構造本類物件。
同理,析構順序:(可以看出與構造順序相反)
在這裡插入圖片描述