在C++中,为什么用基类指针Ap建立派生类动态对象,用delete删除对象时,只调用基类的析构函数呢??
答案:3 悬赏:0
解决时间 2021-02-06 18:59
- 提问者网友:生亦何欢
- 2021-02-06 08:11
在C++中,为什么用基类指针Ap建立派生类动态对象,用delete删除对象时,只调用基类的析构函数呢??
最佳答案
- 二级知识专家网友:一只傻青衣
- 2021-02-06 09:26
如果函数不是 virtual 的,则进行的是静态绑定,即在编译期间就决定了其调用的函数。
对于上面的程序来说, delete Bp2;,即使基类指针Bp2实际上指向的是派生类对象,但是编译器也会把这个基类指针和指向类型(基类)的析构函数进行静态绑定,从而达不到调用派生类析构函数的目的。
对于上面的程序来说, delete Bp2;,即使基类指针Bp2实际上指向的是派生类对象,但是编译器也会把这个基类指针和指向类型(基类)的析构函数进行静态绑定,从而达不到调用派生类析构函数的目的。
全部回答
- 1楼网友:不羁的心
- 2021-02-06 10:44
这是类的继承的一个特性,父类的一切东西都会由子类继承。
- 2楼网友:寂寞的炫耀
- 2021-02-06 09:43
纳尼
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯