Programación General > Visual C++
Problemas Al Convertir Tipos
JuanK:
OK, pero mi duda viene de que
CString str;
char* cad ="cadena";
str=cad;
Es decir str no se ha instanciado, solo definido.. deceonozco como funciona el TIpo CString porque nunca lo he usado y no se como sea internamente pero si es algo mas elaborado que solo otra forma de escribir char *... supongo que deberia resultar en un problema... pero bueno no tengo ni idea de como sea eso.
Eternal Idol:
--- Cita de: "JuanK" --- OK, pero mi duda viene de que
CString str;
char* cad ="cadena";
str=cad;
Es decir str no se ha instanciado, solo definido.. deceonozco como funciona el TIpo CString porque nunca lo he usado y no se como sea internamente pero si es algo mas elaborado que solo otra forma de escribir char *... supongo que deberia resultar en un problema... pero bueno no tengo ni idea de como sea eso.
--- Fin de la cita ---
Mas bien tu duda viene de desconocer la POO en C++. CString es una clase y no un tipo, str es un objeto ya que contrariamente a lo que decis si esta instanciado ahi mismo.
Y los tres puntos que diste no tienen nada que ver con esto:
1- le asignas una cadena ("cadena") a un puntero (cad), no una direccion de memoria
2- no has reservado memoria para donde apunte el puntero (cad)
3- la cadena no termina en nulo ("cadena")
Como ves, nada de eso esta relacionado directamente a str.
PD. Eso de arriba se suele denominar literales de cadena.
JuanK:
Cuando dije el Tipo CString ya sabia que era una clase, no dije tipo primitivo para mi y no se sime he hago entender una clase es un tipo (tipo referecia) asi como lo es un estruct o un enum, otra cosa si es que hubiese dicho tipo primitivo, como sucede en C# string si es un tipo primitivo pero no me referia a eso en este caso.
Por otro lado no es CString una clase del MFC? eso no tiene nada que ver con saber o no POO, tiene que ver con conocer una libreria para C++ que nunca he usado.
Y si en lo primero que dije estaba equivocado de acuerdo a tu explicacion, pero la duda me ha desembocado en lo del CString.
Para intsnciar instanciar la clase no se requeriria hacer uso de new?
Eternal Idol:
--- Cita de: "JuanK" ---Por otro lado no es CString una clase del MFC? eso no tiene nada que ver con saber o no POO, tiene que ver con conocer una libreria para C++ que nunca he usado.
Para intsnciar instanciar la clase no se requeriria hacer uso de new?
--- Fin de la cita ---
No y por eso dije que: "Mas bien tu duda viene de desconocer la POO en C++".
--- Cita de: "JuanK" ---Y si en lo primero que dije estaba equivocado de acuerdo a tu explicacion, pero la duda me ha desembocado en lo del CString.
--- Fin de la cita ---
Mi explicacion no tiene la menor importancia (no me dedico a explicar sino a hacer) estabas equivocado de acuerdo a la realidad.
JuanK:
--- Cita de: "Eternal Idol" ---
--- Cita de: "JuanK" ---Por otro lado no es CString una clase del MFC? eso no tiene nada que ver con saber o no POO, tiene que ver con conocer una libreria para C++ que nunca he usado.
Para instanciar la clase no se requeriria hacer uso de new?
--- Fin de la cita ---
No y por eso dije que: "Mas bien tu duda viene de desconocer la POO en C++".
--- Fin de la cita ---
Pero toda la documentacion que he visto me dice que CString es parte de las MFC :blink:
Porque no se requiere instanciar el tipo CString en C++?
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa