[C con Clase] Pregunta sobre cin y cout, al diseño de una clase
Steven Davidson
srd4121 en njit.edu
Mie Mayo 19 01:34:00 CEST 2010
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100519/825ff6bc/attachment.html>
Más información sobre la lista de distribución Cconclase