#include <iostream>
using namespace std;
int *p1;
struct base
{
base():a(10){}
int a;
~base()
{
cout << "~base()\n";
}
};
struct derive:public base
{
derive():b(5){
p1=&b;
cout << p1 << "\n";
}
int b;
~derive()
{
cout << "~derive()\n";
}
};
int main()
{
base *p = new derive;
delete(p);
cout << *p1;
return 0;
}
派生の b は削除しないほうがいいと思いますが、p1 が指しているものは削除されていました。動的継承が発生しなかったときに派生クラスを指していた基本クラスのポインターを削除すると、どのように機能しますか? 私の英語でごめんなさい。