您的当前位置:首页正文

C++ - 封闭类

来源:华佗小知识
  • 封闭类
#include <iostream>
using namespace std;
//轮胎类
class Ctyre {
    private:
        int radius;
        int width;
    public:
    Ctyre(int r,int w):radius(r),width(w){}
};
//引擎类
class CEngine {
public:
};
//车->封闭类
class CCar {
    private:
    int price;
    Ctyre tyre;
    CEngine engine;    
    public:
        CCar(int p,int tr,int tw);
};
CCar::CCar(int p,int tr,int tw):price(p),tyre(tr,tw){
};
int main(int argc, const char * argv[]) {
    CCar(20000, 17, 255);
    return 0;
}

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

  • 定义封闭类的构造函数时,添加初始化列表:
    类名::构造函数(参数表):成员变量1(参数表),成员变量2(参数表)...

调用顺序

  • 当封闭类对象生成的时候,
    • s1:执行所有成员对象的构造函数
    • s2:执行封闭类的构造函数
  • 成员对象的构造函数调用顺序
    • 和成员对象在类中的说明顺序一致
    • 与在成员初始化列表中出现的顺序无关
  • 当封闭类的对象消亡时,
    • s1:先执行封闭类的析构函数
    • s2:执行成员对象的析构函数