為什么會段錯誤
#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;
}
2018-01-02
意思就沒分配首地址
2018-01-02
指針 pp不是在堆中建立的,就是一個簡單的定義+初始化, 不需要主動delete