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).
codice:
#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() {}
};
Aiutatemi per favore,dopodomani ho l'esame,e trovare i peli nel codice già scritto non mi va a genio proprio
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