[C con Clase] Pregunta sobre cin y cout, al diseño de una clase
Jorge García
jorgeantonio49 en gmail.com
Mie Mayo 19 19:38:08 CEST 2010
Gracias Steven era justo lo que necesitaba.
Gracias también a Leonardo por responder.
El mié, 19-05-2010 a las 01:34 +0200, Steven Davidson escribió:
> Hola Jorge Antonio,
>
> 2010/5/19 Jorge García <jorgeantonio49 en gmail.com>
> Hola!
> Ya tengo un rato programando y me da un poco de pena hacer
> esta
> pregunta, por que me imagino que la respuesta es trivial, solo
> que he
> buscado y no encuentro solución que me agrade.
>
> ¿Hay algún método que pueda implementar para poder usar una
> clase hecha
> por con cout y cin?
>
> Concretamente tengo una clase Vector3D y me gustaría definirle
> un
> comportamiento del estilo:
>
> Vector3D a(1, 0, 1);
>
> cout << "a = " << a << endl;
>
> ¿Es posible hacerlo? y si si, ¿Como es el prototipo del
> método?
> Gracias de antemano
>
>
>
> Sí, claro. Esto se trata de la sobrecarga de operadores. De hecho, el
> operador << ya está sobrecargado para los tipos fundamentales.
> Simplemente agrega otra sobrecarga para tu tipo que es la clase
> 'Vector3D'. Esto es,
>
> ostream & operator<<( ostream &os, const Vector3D &v )
> {
> return os << '(' << v.x() << ',' << v.y() << ',' << v.z() << ')';
> }
>
> O algo parecido.
>
> Para que funcione para 'cin', usa este prototipo:
>
> istream & operator>>( istream &is, Vector3D &v );
>
> Realmente, podemos usar otras clases que deriven de estas dos, como
> puede ser 'ofstream' e 'ifstream' para ficheros.
>
>
> Espero haber aclarado la duda.
>
> Steven
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Más información sobre la lista de distribución Cconclase