• C++的子对象


    当一个类的成员是某一个类的对象时,该对象就为子对象。子对象实际就是对象成员。

    例如:

    class A       
    { ……. } ;      
    class B      
    {
       public: …….  
     private:  
            A  a;
          ………
    };

    其中, a是子对象,它是A类的对象作为B类的成员。

    在类中出现了子对象或对象成员时,该类的构造函数要包含对子对象的初始化,通常采用成员初始化列表的方法来初始化子对象。在成员初始化表中包含对子对象的初始化和对类中其他成员的初始化。

    #include <iostream>
    using namespace std;
     class
    A
    {
      public:  
        A(void)
      {    
         cout<<"A constructor is called!"<<endl;   
      }
    };
      class
    B
    {
       public:  
       B (void)
      {  
           cout<<"B constructor is called!"<<endl;  
       }
      private:    
      static B* p_myself;
      public:
          static B* instance()
        {      
           if(p_myself==NULL)   
           {          
               p_myself=new B();
            }     
           return p_myself;
        }
           private
    :
               A a;   //a为子对象
       };
       B
    * B::p_myself=
    NULL;
       int
    main()
      {    
         B* bb;  
        bb=B::instance();
        return0;
    }

    输出结果:

    A constructor is called!
    B constructor is called!

    若将 A a; 改为A* a;(即定义一个指向A类对象的指针),则在初始化B时,不会初始化A。即输出结果为:

    B constructor is called!
  • 相关阅读:
    Spring笔记——装配Bean
    Spring笔记——Spring之旅
    浅读Vue-Router源码记录
    稍微整理ES2020(es11)新东西
    前端实现批量打包下载文件
    CSS常见的三栏灵活布局实现方法
    不吹不黑,学完这篇,PDF导出就没有问题了
    不吹不黑,学完这篇,Word导出就没问题了
    不吹不黑,学完这篇,excel导出就没问题了
    Sass预编译 减法及除法计算问题
  • 原文地址:https://www.cnblogs.com/hainanlinyu/p/3228407.html
Copyright © 2020-2023  润新知