¿Cómo puedo obtener la representación de cadena de un objeto en C ++ (es decir, qué se imprimiría haciendo cout << objeto)?

Para convertir un objeto a la representación de cadena que se imprimiría con el cout << object , puede usar stringstream (u ostringstream si solo necesita conversión unidireccional):

http://www.cplusplus.com/referen…

La clase stringstream imita una secuencia de E / S, pero solo está respaldada por un buffer de cadena. Después de enviar el objeto al stringstream , llame al método str() para recuperar la representación de cadena. Es común incluir esta funcionalidad en una función de utilidad, utilizando plantillas para permitir cualquier tipo de objeto.

Por ejemplo:

 template  std::string to_string(const T& object) { std::ostringstream ss; ss << object; return ss.str(); } 

Para permitir que esto funcione para clases personalizadas, simplemente implemente el operator<< para el tipo ostream como lo haría para que la clase funcione con cout .

More Interesting

¿Cuándo la regresión logística funciona mal y se debe preferir la máquina de vectores de soporte (SVM)?

¿Existen programas web auto modificables, ya que el navegador web es perfecto para el código auto modificable?

¿Por qué el bit es la unidad de información más fundamental en la informática y no algo que puede tomar más de un estado (0,1,2,3 ... etc. en lugar de 0 y 1)?

¿Cuál es la mejor manera para que un programador autodidacta complete el conocimiento de que un título en informática podría haberle ganado?

¿Cuáles son las diferencias entre ASIC y FPGA?

¿Dónde puedo encontrar los problemas NP completos del mundo real en la teoría de grafos para crear heurística?

¿Cuál es la explicación intuitiva de Learning to Rank y algoritmos como RankNet, LambdaRank y LambdaMART? ¿En qué tipos de datos / variables se pueden usar estas técnicas? ¿Cuáles son sus puntos fuertes y limitaciones?

Cómo convertirse en un reparador de computadoras hecho a sí mismo

¿Cuál sería la primera pregunta que harías si conoces a Donald Knuth?

A algoritmos de programación?

Asumiendo que la ley de Moore será correcta para los próximos 100 años. ¿Cuánto tiempo tenemos antes de que la inteligencia artificial se apodere del planeta?

¿Los hackers de crecimiento y los ingenieros de crecimiento están aquí para quedarse?

¿Por qué la copia de datos de una computadora a un disco flash tarda tanto?

¿Qué importancia tienen las ecuaciones diferenciales parciales para la robótica?

¿Por qué se basan los índices 1 de Matlab?