得到一個錯誤,它是一個非虛擬析構函數的虛函數。我該如何解決這個錯誤?它在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;
}
};
哇 - 你能修復代碼示例嗎?你正在'container <>'中定義'〜queue',爲什麼你明確地調用析構函數? – sehe 2012-01-27 08:37:17
如果你想得到一個很好的答案,我建議發佈代碼編譯。此外,你不能像調用''queuel。'list();'' – grundprinzip 2012-01-27 08:37:24
@grundprinzip那樣調用析構函數:是的,你可以顯式調用一個析構函數,即使在這裏可能沒有理由這麼做。 – 2012-01-27 08:41:07