C++析构函数是怎么出来的?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C++析构函数是怎么出来的?

2016-03-09 09:10:26 1627 1
#include 
#include 
#include 
#include
using namespace std;
class Door {
public:
void open() const {
cout << "open door horizontally" << endl;
}
void close() const {
cout << "close door horizontally" << endl;
}
virtual ~Door()
{
cout << " Door is delete " <<endl;
}
};
class DoorController {
protected:
vector _doorVec;
public:
void addDoor(Door aDoor) {
_doorVec.push_back(aDoor);
}
void openDoor() const {
for_each(_doorVec.begin(), _doorVec.end(), mem_fun_ref(&Door::open));
cout << "openDoor is end" <<endl;
}
virtual ~DoorController()
{
cout << "DoorController is delelte" <<endl;
}
};
int main()
{
DoorController dc;
Door doorc;
dc.addDoor(doorc);
dc.addDoor(doorc);
// dc.addDoor(Door());
// dc.addDoor(Door());
dc.openDoor();
}

运行结果:

C++
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 18:55:18

    上面是基类BaseControl的析构函数,写成virtual 防止使用多态的时候,delete 时未执行 该函数

    在程序退出的时候

    inline static ......<br/><strong>答案就在这里:</strong><a target='_blank' rel='nofollow' href='http://blog.csdn.net/xugangjava/article/details/8477777'>
    0 0
相关问答

1

回答

有谁知道A、B公共信息 也就是common(A,B)是怎么定义的吗?

2022-07-26 22:01:16 124浏览量 回答数 1

1

回答

有返回值无参数的函数格式怎么写?

2022-03-29 19:58:42 125浏览量 回答数 1

0

回答

这是怎么了

2019-08-21 15:37:52 165浏览量 回答数 0

2

回答

求解题有哪位知道是怎么算出来的有偿

2018-08-23 21:25:48 1274浏览量 回答数 2

1

回答

二进制是怎么算的?

2018-07-21 20:06:33 1142浏览量 回答数 1

5

回答

二进制减法0-1=1到底是怎么算出来的呢?

2018-07-17 16:03:32 8760浏览量 回答数 5

1

回答

5201314的二进制是怎么算的?

2018-07-15 12:11:22 4991浏览量 回答数 1

3

回答

5的二进制是怎么算的

2018-07-15 20:26:21 4498浏览量 回答数 3

1

回答

怎么开通cdn

2018-06-01 21:42:19 880浏览量 回答数 1

3

回答

怎么获取群会话

2016-03-01 09:22:59 4693浏览量 回答数 3
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载