zoukankan      html  css  js  c++  java
  • 第二章构造函数语义学——带有Default Constructor的Member Class Object

    书中第43页中有如下描述:

    如果有多个class member objects 都要求constructor 初始化操作,将如何?C++语言要求以 “memeber objects 在class中的声明顺序”来调用各个constructors。


    也就是说 一个类中的 数据成员 的声明顺序决定了,他们的构造顺序。具体代码如下:

    class A1
    {
    public:
        A1(){cout<<"A1 construction"<<endl;}
    };
    
    class A2
    {
    public:
        A2(){cout<<"A2 construction"<<endl;}
    };
    
    class A4
    {
    public:
        A4():a2(),a1(){//注意这里的顺序是反过来的
            cout<<"A4 construction"<<endl;
        }
    private:
        A1 a1;
    public:
        A2 a2;
    };
    
    
    int main(int argc, char* argv[])  
    {  
        A4 a;
    
        return 0;
    }  

    输出结果:

    A1 construction
    A2 construction
    A4 construction

  • 相关阅读:
    微信运营
    1.数据库&SQL语言
    16.线程
    15.IO流
    14.异常
    13.集合
    12.常用类
    11.String类-StringBuffer类、StringBuilder类
    10.Object类-包装类-内部类
    9.接口
  • 原文地址:https://www.cnblogs.com/cyttina/p/2781326.html
Copyright © 2011-2022 走看看