C++(类对象作为类成员)

类对象作为类成员

  • 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;
}
posted @ 2020-09-07 23:23  flyingswallow  阅读(1172)  评论(0编辑  收藏  举报