salve a tutti.Chiedo una mano a risolvere un esercizio che probabilmente mi aiuterà a risolverne a catena tanti altri.
Ecco il testo :
Discutere brevemente se, e sotto quali condizioni, le seguenti classi si comportano correttamente
dal punto di vista dell’allocazione delle risorse (si noti che quella mostrata `e da considerarsi
l’implementazione completa delle classi in questione).
Aiutatemi per favore,dopodomani ho l'esame,e trovare i peli nel codice già scritto non mi va a genio propriocodice:#include <vector> template <typename T> class A { private: int i; T* p; double d; public: A() : i(), p(new T), d() {} ~A() { delete p; }; }; template <typename T> class B { private: int i; T* p; double d; B(const B&); B& operator=(const B&); public: B() : i(100), p(new T[i]), d() {} ~B() { delete[] p; }; }; class C : private A<std::vector<int> > { private: B<double> b1; B<int> b2; C(const C&); C& operator=(const C&); public: C() {} };
![]()
Ho notato che manca il distruttore virtuale nella classe A,madre di C,che nella lista di inizializzazione dei costruttori trovo dei new che a occhio non mi piacciono tanto perchè potrebbero dare errore e quindi questo non viene gestito,ma potrei sbagliarmi sulla valutazione

Rispondi quotando
