开发者社区> 问答> 正文

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

#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();
}

运行结果:

展开
收起
a123456678 2016-03-09 09:10:26 1910 0
1 条回答
写回答
取消 提交回答
  • 上面是基类BaseControl的析构函数,写成virtual 防止使用多态的时候,delete 时未执行 该函数

    在程序退出的时候

    inline static ......<br/><strong>答案就在这里:</strong><a target='_blank' rel='nofollow' href='http://blog.csdn.net/xugangjava/article/details/8477777'>
    2019-07-17 18:55:18
    赞同 展开评论 打赏
问答分类:
C++
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载