封闭类------新标准c++程序设计
封闭类:
一个类的成员变量如果是另一个类的对象,就称之为“成员对象”。包含成员对象的类叫封闭类。
#include<iostream> using namespace std; class A{ int n; public: A(int n):n(n){} }; class B{ A t; int g; public: B(int n,int g):t(n),g(g){} };
B是一个封闭类,生成封闭类对象的语句一定要让编译器能够弄明白其成员对象的是如何初始化的,否则就会编译错误。
封闭类的初始化:
封闭类对象生成时,先执行所有成员对象的构造函数,然后才执行封闭类自己的构造函数。成员对象构造函数的执行次序和成员对象在类定义中的次序一致,与它们在构造函数初始化列表中出现的次序无关。当封闭类对象消亡时,先执行封闭类的析构函数,然后再执行成员对象的析构函数,成员对象析构函数的执行次序和构造函数的执行次序相反,即先构造的后析构。
新标准c++程序设计
转载请注明出处