さて、すべての定義を含むクラスがあるとしましょう、bla bla bla ...
template <class DT>
class Foo{
private:
DT* _data;
//other stuff;
public:
Foo(DT* data){ _data = data; }
virtual ~Foo(){ delete _data; }
//other methods
};
そして、私はメインメソッドに持っています:
int main(){
int number = 12;
Foo<anyRandomClass>* noPrimitiveDataObject = new Foo<anyRandomClass>(new anyRandomClass());
Foo<int>* intObject = new Foo<int>(number);
delete noPrimitiveDataObject; //Everything goes just fine.
delete intObject; //It messes up here, I think because primitive data types such as int are allocated in a different way.
return 0;
}
私の質問は次のとおりです。メイン メソッドの両方の削除ステートメントを正常に機能させるにはどうすればよいでしょうか。
PS: この特定のコードを実際にコンパイル/テストしたわけではありませんが、(インデントも含めて) 広範囲にレビューしたので、間違いを見つけた場合はよろしくお願いします。