Mr.Cobra
Nuovo Utente
- Messaggi
- 69
- Reazioni
- 1
- Punteggio
- 26
Inizia ad utilizzareusing
invece ditypedef
, sarebbe quindiusing ptrLibro = Libro *
.
Ritornando al codice quindi alla fine è molto simile al
typedef
differenze con il
Codice:
using
Non c'è sul mio libro ho fatto il
Codice:
namespace
Codice:
using
Codice:
namespace
Codice:
using
Codice:
typedef
C++:
class Libro { };
class Libreria
{
private:
Libro* ptr;
size_t size; // stdlib.h/cstdlib
public
Libreria(size_t s)
: size(s),
ptr(new Libro[size])
{ }
Libreria()
: Libreria(50)
{ }
};
Qui hai usato un using anche su
Codice:
size_t size;
C++:
// stdlib.h/cstdlib
È molto importante ricordarsi nel distruttore:
C++:
~Libreria()
{
...
delete[] ptr;
}
In alternativa un belunique_ptr
E' sempre un STL giusto?
C++:
class Libreria
{
private:
unique_ptr<Libro> ptr;
size_t size; // stdlib.h/cstdlib
public:
Libreria(size_t s)
: size(s),
ptr(make_unique<Libro>(size))
{ }
Libreria()
: Libreria(50)
{ }
~Libreria()
{
...
}
};
Come vedi non devi distruggere tu il puntatore. Ma pensa che con unstd::vector
avevi pure push_back(), pop_back(), resize() ecc...
Si si interessante forse la prof ci vuole proprio far allenare sulle liste, pile, code e vettori ecc... Perciò non ce lo ha spiegato