これは非仮想デストラクタを持つ仮想関数であるといういくつかのエラーが発生します。どうすればこのエラーを修正できますか? g ++ 4.6.xで動作していましたが、古いバージョンのg ++で動作する必要があります。 :(仮想デストラクタ?
#include <list>
template <typename T>
class container{
public:
~queue(){
queuel.clear();
queuel.~list();
}
virtual T func_x(){
T temp;
//do stuff with list<t> test
return temp;
}
private:
std::list<T> test;
};
template <typename T>
class container2 : public container<T>{
public:
virtual T func_x(){
T temp;
//do different stuff with list<T> test
return temp;
}
};
woah - コードサンプルを修正できますか?コンテナ<>内に '〜queue'を定義していますが、どうしてデストラクタを明示的に呼び出すのですか? – sehe
良い答えを得たい場合は、コンパイルするコードを投稿することをお勧めします。さらに、 '' queuel。〜list(); ''のようにデストラクタを呼び出すことはできません。 – grundprinzip
@grundprinzip:デストラクタを明示的に呼び出すことは可能です。 –