200分问个C++基础问题
class B : public A;
class C : public A;
class D : public A;
B* b = new B;
C* c = new C;
D* d = new D;
我现在把这b,c ,d三个对象加入一个List。
释放时为了简单,我把三个对象通过dynamic_cast统一转化成A类型,然后再delete
比如A* a = dynamic_cast<A*>(List->Item[0]);
delete a;
a = NULL;
这样释放会不会有问题?
[解决办法]
A的析构函数定义成 virtual 就没问题
[解决办法]
[解决办法]
感觉上应该没问题,不过还是要看你类的具体定义.
[解决办法]
[解决办法]
[解决办法]
[解决办法]
怎么你们都这么快啊.
析构函数定义成 virtual 就没问题.
A B C D都写自己的析构.
释放自己申请的内存.
[解决办法]
大家都说了,用虚析构函数。
[解决办法]
..............
[解决办法]