C++ 中构造函数对父类及成员对象的初始化时机
2007-05-11 09:42
357 查看
#include <iostream.h>
//本程序用来测试构造函数中成员对象的初始化时机
class PClass
{
public:
PClass()
{
cout <<"PClass constructor"<<endl;
}
~PClass()
{
cout <<"PClass destructor"<<endl;
}
};
class Mem1
{
public:
Mem1()
{
cout <<"Mem1 constructor"<<endl;
}
~Mem1()
{
cout <<"Mem1 destructor"<<endl;
}
};
class Mem2
{
public:
Mem2()
{
cout <<"Mem2 constructor"<<endl;
}
~Mem2()
{
cout <<"Mem2 destructor"<<endl;
}
};
class Mem3
{
public:
Mem3()
{
cout <<"Mem3 constructor"<<endl;
}
~Mem3()
{
cout <<"Mem3 destructor"<<endl;
}
};
class OuterClass : public PClass
{
public:
Mem1 m1;
Mem2 m2;
Mem3 m3;
OuterClass()
{
cout <<"OuterClass constructor"<<endl;
}
~OuterClass()
{
cout <<"OuterClass destructor"<<endl;
}
};
int main()
{
OuterClass oc;
return 0;
}
PClass constructor
Mem1 constructor
Mem2 constructor
Mem3 constructor
OuterClass constructor
OuterClass destructor
Mem3 destructor
Mem2 destructor
Mem1 destructor
PClass destructor
//本程序用来测试构造函数中成员对象的初始化时机
class PClass
{
public:
PClass()
{
cout <<"PClass constructor"<<endl;
}
~PClass()
{
cout <<"PClass destructor"<<endl;
}
};
class Mem1
{
public:
Mem1()
{
cout <<"Mem1 constructor"<<endl;
}
~Mem1()
{
cout <<"Mem1 destructor"<<endl;
}
};
class Mem2
{
public:
Mem2()
{
cout <<"Mem2 constructor"<<endl;
}
~Mem2()
{
cout <<"Mem2 destructor"<<endl;
}
};
class Mem3
{
public:
Mem3()
{
cout <<"Mem3 constructor"<<endl;
}
~Mem3()
{
cout <<"Mem3 destructor"<<endl;
}
};
class OuterClass : public PClass
{
public:
Mem1 m1;
Mem2 m2;
Mem3 m3;
OuterClass()
{
cout <<"OuterClass constructor"<<endl;
}
~OuterClass()
{
cout <<"OuterClass destructor"<<endl;
}
};
int main()
{
OuterClass oc;
return 0;
}
PClass constructor
Mem1 constructor
Mem2 constructor
Mem3 constructor
OuterClass constructor
OuterClass destructor
Mem3 destructor
Mem2 destructor
Mem1 destructor
PClass destructor
相关文章推荐
- 父类、构造函数、成员对象的调用时机
- 父类、构造函数、成员对象的调用时机
- c++高级---C++类构造函数初始化列表以及对象成员的构造
- 父类、构造函数、成员对象的调用时机
- C++中构造函数,成员对象的初始化顺序
- 静态变量、实例变量初始化时机,以及子类隐藏父类成员时,创建子类对象的一些问题
- 九、构造函数和析构函数(三) 初始化列表、对象成员初始化、const,引用成员初始化
- c++中什么类型的成员变量只能在构造函数的初始化列表中进行
- C++:对象的初始化和构造函数
- C++中构造函数初始化成员列表总结
- 关于继承与构造函数重载的问题(初始化子类构造函数中的父类对象)求解答。。。
- [C++基础]在子类中向父类的构造函数传递参数的小例子,包括类中常量的初始化
- 【c++程序】成员变量的初始化与构造函数(示例)
- 定义一个描述“点”的类及该类的对象,并使用构造函数初始化数据成员
- 【c++】构造函数初始化列表中成员初始化的次序性
- c++ 带有初始化成员列表的类构造函数 定义与实现分离 方法
- C++成员变量初始化与构造函数
- C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++中使用初始化列表比在构造函数中对成员变量赋值更高效
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数