получить пару ошибок, что это виртуальная функция с не виртуальным деструктором. как я могу исправить эту ошибку? он работал в 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' внутри' container <> 'и почему вы вызываете деструктор явно? – sehe
Если вы хотите получить хороший ответ, я рекомендую опубликовать код, который компилируется. Кроме того, вы не можете вызвать деструкторы, как вы это делали, с '' queuel. ~ List(); '' – grundprinzip
@grundprinzip: Да, вы * можете * вызывать деструктор явно, хотя, вероятно, нет причин для этого. –