• 成员对象和封闭类


    成员对象:类中的成员变量是另一个类的对象。包含成员对象的类叫做封闭类。

    封闭类构造函数的初始化列表

    定义封闭类的构造函数时,添加初始化列表:

    类名::构造函数(参数表):成员变量1(参数表),成员变量2(参数表),….

    {

    . . .

    }

    成员对象初始化列表中的参数

    • 任意复杂的表达式
    • 函数/变量/表达式中的函数,变量有定义

    调用顺序:

    当封闭类对象生成时

    • Step1执行所有成员对象的构造函数
    • Step2执行封闭类的构造函数

    成员对象的构造函数调用顺序和成员对象在类中的声明顺序一致与在初始化列表中出现的顺序无关。

    当封闭类的对象消亡时:

    • Step1执行封闭类的析构函数
    • Step2执行成员对象的析构函数

    析构函数调用顺序和构造函数调用顺序相反。

    代码如下:

    #include <iostream>
    
    using namespace std;
    
    class Engine
    {
    private:
        int price;
    public:
        Engine(int p)
        {
            price = p;
            cout << "Engine constructor is called" << endl;
        }
        ~Engine()
        {
            cout << "Engine deconstructor is called" << endl;
        }
    };
    
    class tyer
    {
    private :
        int width, length;
    public:
        tyer(int w, int l) :width(w), length(l)
        {
            cout << "tyer constructor is called" << endl;
        };
        ~tyer()
        {
            cout << "tyer destructor is called" << endl;
        }
    };
    
    class car
    {
    private :
        tyer ty;
        Engine en;
        int color;
    public:
        car(int col, int p, int w, int l);
        ~car()
        {
            cout << "car deconstructor is called" << endl;
        }
    };
    car::car(int col, int p, int w, int l) :color(col), en(p), ty(w, l)
    {
        cout << "car constructor is called" << endl;
    }
    
    int main()
    {
        car car1(2, 1, 4, 5);
        return 0;
    }

     参考链接:

    https://www.coursera.org/learn/cpp-chengxu-sheji

     

  • 相关阅读:
    性能测试相关
    centos7 设置定时器 crond
    大杀器Bitset
    树形DP
    双线程DP
    状态压缩DP
    斜率优化DP
    01分数规划
    二分和三分
    uva11549 Floyd判圈法
  • 原文地址:https://www.cnblogs.com/helloforworld/p/5652822.html
Copyright © 2020-2023  润新知