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

Duda con función firend ostream& en una classe

Estas en el tema de Duda con función firend ostream& en una classe en el foro de C/C++ en Foros del Web. Vereis, he creado una clase que se llama "class Deque", y ésta contiene en su parte privada : MyString dq; int esq; int dre; int ...
  #1 (permalink)  
Antiguo 13/11/2008, 13:48
 
Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Duda con función firend ostream& en una classe

Vereis, he creado una clase que se llama "class Deque", y ésta contiene en su parte privada:

MyString dq;
int esq;
int dre;
int tamany;
int ocupat;


( MyString es otra clase creada previamente, y genera strings )

La cosa es que en la clase Deque tengo la función friend ostream& operator<<(ostream& c, const Deque& q), donde se supone que ésta función tiene que sacar por la salida una representación de la Deque (el valor de esq, dre, tamaño, ocupado..).

Entonces yo he creado esta función tal que así:

ostream& operator<<(ostream& c, const Deque& q)
{
cout << "La esquerra apunta a la posicio: " << q.esq << endl;
cout << "La dreta apunta a la posicio: " << q.dre << endl;
cout << "El nombre de elements continguts en la Deque: " << q.ocupat << endl;
cout << "El tamany de la Deque es: " << q.tamany << endl;
}


Pero obviamente no me salen los cout, porque en el main no llamo a la función y tampoco se como deberia hacerlo para llamarla :S

( EJ: La funcion unsigned int Deque::getCapacity() const la llamo con dq.getCapacity(), para que me entendais )
  #2 (permalink)  
Antiguo 13/11/2008, 17:38
poi
 
Fecha de Ingreso: octubre-2008
Mensajes: 73
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Duda con función firend ostream& en una classe

Deberia se asi dentro del metodo
ostream& operator<<(ostream& c, const Deque& q)
{
c << "La esquerra apunta a la posicio: " << q.esq << endl;
c << "La dreta apunta a la posicio: " << q.dre << endl;
c << "El nombre de elements continguts en la Deque: " << q.ocupat << endl;
c << "El tamany de la Deque es: " << q.tamany << endl;
}

luego en el programa principal es sencillo:

cout << q;
  #3 (permalink)  
Antiguo 14/11/2008, 01:31
 
Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Respuesta: Duda con función firend ostream& en una classe

Grácias eso era, con una pequeña modificación en el cout<< ese
  #4 (permalink)  
Antiguo 14/11/2008, 14:45
Avatar de post-it  
Fecha de Ingreso: noviembre-2008
Mensajes: 17
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Duda con función firend ostream& en una classe

No es correcto del todo

La función devuelve una referencia de ostream pero en esa función no hay return! :) Dudo de que así compile, ¿compila?

Solución: return c;

Saludos
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 19:27.