假设我有一些这样的结构:
struct A{
int someInt;
}
struct B : public A{
int someInt;
int someOtherInt;
}
还有一个类:
class C{
A *someAs;
void myFunc(A *someMoreAs){
delete [] someMoreAs;
}
}
这会导致问题:
B *b=new B[10];
C c;
c.myFunc(b);
因为它正在删除b,认为它是A类型,它更小。这会导致内存泄漏吗?
另外,假设我想在 myFunc 中分配更多与 b 相同的内容,使用 new,但 C 不知道 b 是属于 A 还是属于 B?有朋友建议typeof,但是VC好像不支持这个。