c++父类指针指向子类对象,如何释放干净子类对象的?
小白刚刚开始学c++,求助一下:把问题的再具体一点就是:指针是依靠什么来判断我应该释放多大的空间的?
class A {
int a = 20;
};
class B :public A {
int b = 30;
};
int main()
{
cout << "------------------" << endl;
for (int i = 0; i <= 10000; ++i) {
B *pr = new B;
A *pt = pr;//使用一个父类的指针指向子类对象!
cout << "对象b的空间大小" << sizeof(*pr) << endl;
cout << "指针所指向的可访问空间大小:" << sizeof(*pt) << endl;//父类指针管理的空间只有4,也就是类A的a变量属性
delete pt;//使用父类的指针释放,是否会造成内存泄露?
}
return 0;
}
//pt指针是否能把子对象释放干净?指针释放的机制是什么?