成员对象和封闭类
2016-07-08 11:31
281 查看
成员对象:类中的成员变量是另一个类的对象。包含成员对象的类叫做封闭类。
封闭类构造函数的初始化列表
定义封闭类的构造函数时,添加初始化列表:
类名::构造函数(参数表):成员变量1(参数表),成员变量2(参数表),….
{
. . .
}
成员对象初始化列表中的参数
任意复杂的表达式
函数/变量/表达式中的函数,变量有定义
调用顺序:
当封闭类对象生成时,
Step1执行所有成员对象的构造函数
Step2执行封闭类的构造函数
成员对象的构造函数调用顺序和成员对象在类中的声明顺序一致与在初始化列表中出现的顺序无关。
当封闭类的对象消亡时:
Step1执行封闭类的析构函数
Step2执行成员对象的析构函数
析构函数调用顺序和构造函数调用顺序相反。
代码如下:
参考链接:
https://www.coursera.org/learn/cpp-chengxu-sheji
封闭类构造函数的初始化列表
定义封闭类的构造函数时,添加初始化列表:
类名::构造函数(参数表):成员变量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
相关文章推荐
- python *args *kwargs
- JavaScript Location 对象
- qt#2 多个实例信号版定一个槽函数如何识别信号源
- Android 中protobuf 的安装,编译和使用
- Layer2-网关冗余技术HSRP、VRRP、GLBP
- 一步一步切入js插件开发
- activity的生命周期
- Android Studio 如何关联源码(关联你想要的任何版本的源码)
- 多线程经典问题 -- 生产问题
- SlidingTabLayout的使用--替代ActionBar的Tab导航
- nodejs https 请求 UNABLE_TO_GET_ISSUER_CERT_LOCALLY 错误处理
- React Native——电影列表
- 欧拉计划第3题
- Cocos2d-x程序在Android下的启动过程
- 个人保存 sublime3相关
- 静态存储区、堆和栈的区别http://blog.csdn.net/ccccdddxxx/article/details/7085165
- python socket编程学习笔记2
- tmux使用及个性化配置
- Minimum Depth of Binary Tree
- c# UDP