Cuál es la forma correcta de asignar memoria a través de new
en el constructor de C++. Primera forma en la lista de argumentos:¿Cuál es la forma correcta de asignar memoria en el constructor de C++?
class Boda {
int *memory;
public:
Boda(int length) : memory(new int [length]) {}
~Boda() { delete [] memory; }
};
o en el cuerpo del constructor:
class Boda {
int *memory;
public:
Boda(int length) {
memory = new int [length];
}
~Boda() { delete [] memory; }
};
Gracias, Boda Cydo.
Sé que esto es solo un código de ejemplo, pero como está escrito, la clase tiene graves problemas de administración de memoria (la copiadora predeterminada permitirá desasignar la memoria varias veces). use RAII, use punteros inteligentes o contenedores. con una RAII adecuada, puede que no necesite usar delete yourself to all –
@jk: Secundado, preferiría un 'std :: vector'. –
fredoverflow