To AdamHlavatovic :
Sorry, blbě jsem to napsal, samozřejmě že pokud třída neobsahuje virtuální destruktor, tak to neznamená, že od ní nelze dědit. Jen jsem měl spíše na mysli něco takového:
template<typename T>
class CPtrVector : public std::vector<T>
{
typedef std::vector<T> _Base;
public:
explicit CPtrVector();
// dalsi metody
virtual ~CPtrVector()
{
// a tady budu pristupovat k rodicovske tride
// treba pres _Base::iterator nebo _Base::operator[]
// a chtit uvolnit pointery
}
};
int main()
{
std::vector<int*> * pPtrVector = new CPtrVector<int*>();
// ted to naplnim
// .......
// a ted to smazu
// a je pruser
// destruktory se zavolaji v nespravnem poradi
delete pPtrVector;
return 0
}
Nemel jsem to kde testovat, takze to berte s rezervou.