こんにちは
インターフェースクラスのポインタをメンバに持つクラスを作ったのですが、
ポインタをデリートする際に型情報がわからないため正しくデリートできません。
Interface.h
コード:
__interface IAho { };
SubClass.h
コード:
#include"Interface.h"
class Baka : public IAho { };
MyClass.h
コード:
#include"interface.h"
struct MyClass
{
IAho *p_i;
myClass(IAho* aho) : p_i(aho) { }
~MyClass()
{
//メモリリーク
//delete p_i;
//このクラスからはp_iがどんな型を継承しているかわからない?
//delete static_cast<?>(p_i);
}
}
MyClassにはIAhoを継承したクラス(今回はBaka)を渡したいのですが、
MyClass側でIAhoのポインタをデリートする際に型がわからないのでデリートすることができません。
MyClassをテンプレートクラスにしてテンプレート引数にBakaを渡してそれをもとにデリートしようかと思ったのですが、少し頭の悪い方法のような気がします。
何かいい方法はないでしょうか?