次のような構造体があるとします。
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 はこれをサポートしていないようです。