[c++]インターフェースクラスのポインタをメンバに持つクラスのデストラクタ
Posted: 2017年12月13日(水) 22:18
こんにちは
インターフェースクラスのポインタをメンバに持つクラスを作ったのですが、
ポインタをデリートする際に型情報がわからないため正しくデリートできません。
Interface.h SubClass.h MyClass.h
MyClassにはIAhoを継承したクラス(今回はBaka)を渡したいのですが、
MyClass側でIAhoのポインタをデリートする際に型がわからないのでデリートすることができません。
MyClassをテンプレートクラスにしてテンプレート引数にBakaを渡してそれをもとにデリートしようかと思ったのですが、少し頭の悪い方法のような気がします。
何かいい方法はないでしょうか?
インターフェースクラスのポインタをメンバに持つクラスを作ったのですが、
ポインタをデリートする際に型情報がわからないため正しくデリートできません。
Interface.h SubClass.h 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のポインタをデリートする際に型がわからないのでデリートすることができません。
MyClassをテンプレートクラスにしてテンプレート引数にBakaを渡してそれをもとにデリートしようかと思ったのですが、少し頭の悪い方法のような気がします。
何かいい方法はないでしょうか?