Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como imprimir un string creado por mi

Estas en el tema de Como imprimir un string creado por mi en el foro de C/C++ en Foros del Web. Que tal, mi pregunta es como puedo imprimir informacion de mi objeto directamente, por ejemplo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original class mistring {   ...
  #1 (permalink)  
Antiguo 29/10/2011, 19:43
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Como imprimir un string creado por mi

Que tal, mi pregunta es como puedo imprimir informacion de mi objeto directamente, por ejemplo:


Código C++:
Ver original
  1. class mistring {
  2.    public:
  3.     const char *michar;
  4.     mistring(const char *);
  5. };
  6. mistring::mistring(const char *michar) {
  7.     this->michar = michar;
  8. }


Código C++:
Ver original
  1. en main:
  2. cout<<mistring;

La clase string debe estar totalmente creada por mi, nada de heredar.
Se me ocurre que tendría que sobrecargar el operador << de cout, pero en ese caso habria que heredar la clase?? crear otro cout?
Gracias por la ayuda, espero alguien me pueda resolver esta duda.
  #2 (permalink)  
Antiguo 29/10/2011, 20:05
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Respuesta: Como imprimir un string creado por mi

Ya lo hice, me puse a investigar un poco y no es tan dificil como lo pensaba:
solo hay que crear la funcion para el operador << en mistring, yo creía que su única funcionalidad era el concatenar cadenas por eso me confundí.

Código C++:
Ver original
  1. std::ostream &operator<< (std::ostream &stream, mistring &str) {
  2.     stream  << str.getString();
  3.     return stream;
  4. }

Etiquetas: cout, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:18.