[C con Clase] para que strcpy
rodolfo rosso paz
rodolforossopaz en hotmail.com
Vie Jun 8 17:17:08 CEST 2007
Hola a todos.-
Gracias Steven, como siempre aclarado el punto, aunque en esta ocasion creo
que
mi pregunta no estuvo completa, me falto esto.
Estoy revisando un programa que sobrecarga operadores para una
clase llamada Cadena.
Programa:
int main()
{
Cadena c1( "feliz" );
nota mia: esto invoca al constructor de conversion
porque "feliz" es una constante literal (creo)
y debe ser convertida a tipo Cadena
Programa:
// el constructor de conversión convierte un char * en una Cadena
Cadena::Cadena( const char *c )
: longitud( ( c != 0 ) ? strlen( c ) : 0 )
{
cout << "Constructor de conversion: " << c << '\n';
estableceCadena( c ); // llama a la función de utilidad
} // fin del constructor de conversión Cadena
// función de utilidad invocada por el constructor
void Cadena::estableceCadena( const char *cadena2 )
{
ptrC = new char[longitud + 1]; // asigna memoria
if ( cadena2 != 0 ) // si cadena2 no es un apuntador nulo
strcpy( ptrC, cadena2 ); // copia la literal a un objeto
else // si no
ptrC[ 0 ] = '\0'; // cadena vacía
} // fin de la función estableceCadena
nota mia: ¿ porque es necesario strcpy( ptrC, cadena2 )?
porque no simplemente copio el puntero de cadena2 en ptrC
hacieno ptrC = cadena2;
para que ptrC apunte a la direccion de "feliz", que no esta usando
nadie, ¿o si?.
¿ para que necesito crear otra cadena en otro lugar ?
¿ que hay de malo con el lugar que ocupa "feliz" ?
Disculpen la insolencia de las preguntas, pero como dicen por ahi,
"la ignorancia es audaz" je, je.
gracias de nuevo, y que Dios los bendiga.
Rodolfo
_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger:
http://messenger.latam.msn.com/
Más información sobre la lista de distribución Cconclase