博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++学习笔记(7)----类的数组中构造函数和析构函数的调用顺序
阅读量:6172 次
发布时间:2019-06-21

本文共 1017 字,大约阅读时间需要 3 分钟。

C++类的数组中构造函数和析构函数的调用顺序(2)

对于如下的代码:

#include
using namespace std;class CBase {private: static int count;public: int id;public: CBase() { id = CBase::count++; cout << "CBase():Constructor:" <
<< endl; } ~CBase() { cout << "CBase(): Destructor:" <
<< endl; }};int CBase::count = 0;//类的静态变量必须在类外以这样的方式进行初始化,否则会出现连接错误class CDerive :public CBase {public: CDerive() { cout << "CDerive():Constructor:" << id<

运行结果如下:

S:\ComputerTech\VS2015\Release>Test.exeCBase():Constructor:0CDerive():Constructor:0CBase():Constructor:1CDerive():Constructor:1CBase():Constructor:2CDerive():Constructor:2p[0].id=0p[1].id=1p[2].id=2&p[0]=004AFCB4&p[1]=004AFCB8&p[2]=004AFCBCCDerive(): Destructor:2CBase(): Destructor:2CDerive(): Destructor:1CBase(): Destructor:1CDerive(): Destructor:0CBase(): Destructor:0

总结:

由上述的结果可以看出,构造函数的调用是以从数组的低地址变量向高地址变量的顺序进行的。当退出局部栈时,析构函数的调用是以从高地址变量向低地址变量的顺序进行的。

转载于:https://www.cnblogs.com/dongling/p/5864430.html

你可能感兴趣的文章
php7扩展开发 一 获取参数
查看>>
处女座与复读机
查看>>
Laravel 5.2数据库--迁移migration
查看>>
ExtJs Extender controls 不错的例子
查看>>
html的基础知识
查看>>
Mybatis Sql片段的应用
查看>>
突发奇想20150126
查看>>
Nginx + CGI/FastCGI + C/Cpp
查看>>
学习笔记------jsp页面与jsp标记
查看>>
DS博客作业02--线性表
查看>>
第三届ACM山东省赛I题_Chess_STL
查看>>
jQuery each和js forEach用法比较
查看>>
前端笔记-作用域链的一些理解加记录(JS高级程序设计读书笔记1)
查看>>
改造你的网站,变身 PWA
查看>>
Leetcode 142. Linked List Cycle IIJAVA语言
查看>>
网络基础5
查看>>
Exchange Supported operating system platforms
查看>>
unity3鼠标点击移动
查看>>
Linux 安装中文包
查看>>
谷物大脑
查看>>