为了账号安全,请及时绑定邮箱和手机立即绑定

为什么会段错误

#include <iostream>
#include <typeinfo>
using namespace std;

class a
{
                public:
                                virtual void r()
                                {
                                                cout<<"aaa"<<endl;
                                }
                                ~a()
                                {
                                                cout<<"~aaa"<<endl;
                                }
};
class b:public a
{
                public:
                                virtual void r()
                                {
                                                cout<<"bbb"<<endl;
                                }
                                ~b()
                                {
                                                cout<<"~bbb"<<endl;
                                }
};

int main(void)
{
                b l;
                a* pp=dynamic_cast<a*>(&l);
                pp->r();
                delete pp;
                pp=NULL;
                return 0;
}


正在回答

2 回答

意思就没分配首地址

0 回复 有任何疑惑可以回复我~

指针 pp不是在堆中建立的,就是一个简单的定义+初始化, 不需要主动delete

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

为什么会段错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信