[C con Clase] Inicializacion de punteros. Son equivalentes esta expresiones?
Steven Davidson
srd4121 en njit.edu
Jue Ene 29 20:49:24 CET 2009
Hola Ferrán,
Ferran Ferri wrote:
> Hola, mirando una documentacion me encuentro con esto:
>
> CSample * pSample(new CSample);
>
> Y me preguntaba si esa expresion es equivalente a:
>
> CSample * pSample = new CSample();
>
> En principio el operador new devuelve una referencia a CSample, pero
> la forma de arriba no recuerdo haberla visto.
>
La primera forma es incorrecta, mientras que la segunda es la correcta,
aunque en C++ no se agregan los paréntesis para invocar el constructor
sin parámetros. Esto es,
CSample * pSample = new CSample;
La única manera de que la primera forma sea correcta es que uno no
declare un puntero. Por ejemplo,
CSample oSample( new CSample );
Espero haber aclarado la duda.
Steven
Más información sobre la lista de distribución Cconclase