[C con Clase] operador "<<"
jose luis
jcmdustin en gmail.com
Dom Nov 27 16:34:30 CET 2011
Hola amigos... hace poco estube haciendo un programa para un profesor y encontre el siguiente ...
#include <iostream>
#include <string.h>
using namespace std;
const int MAXCANAL = 80 ; // numero maximo de canal
const int MAXVOLUMEN = 10 ; // nivel maximo de volumen
class televisor{
private:
char marca[15] ; // marca del televisor
int canal ; // numero de canal que esta sintonizando
int volumen; // nivel de volumen del televisor
bool estado; // false: apagado, true; prendido
public:
televisor () ;
televisor ( char m[15], int c, int v, bool e) ;
televisor ( televisor &t) ;
~televisor () ;
void getmarca () ;
int getcanal () ;
int getvolumen () ;
void operator * () ; // prender o apagar el televisor
void operator ++ () ; // cambia de canal al siguiente
void operator -- () ; // cambia de canal al anterior
void cambiar (int c) ; // cambiar al canal c
void operator + (int n) ; // aumenta el volumen n niveles
void operator - (int n) ; // disminuye el volumen n niveles
friend bool operator == (televisor x, televisor y) ; // compara
};
televisor :: televisor ()
{
strcpy(marca,"");
canal = 0 ;
volumen = 0 ;
estado = false ;
}
televisor :: televisor ( char m[15], int c, int v, bool e)
{
strcpy (marca, m) ;
canal = c;
volumen = v ;
estado = e ;
}
televisor :: televisor ( televisor &t)
{
strcpy (marca, t.marca ) ;
canal = t.canal ;
volumen = t.volumen ;
estado = t.estado ;
}
televisor :: ~televisor ()
{
// cout << "liberando memoria" ;
}
void televisor :: getmarca ()
{
cout << "Marca : " << marca ;
}
int televisor :: getcanal ()
{
return canal ;
}
int televisor :: getvolumen ()
{
return volumen;
}
int main()
{
bool stado = false ;
char canal[15];
strcpy (canal , "sony") ;
televisor t1(canal, 15 , 8, stado );
t1.getmarca();
int c, v ;
cout << "canal : " << t1.getcanal << endl ; // aqui esta el problema
cout << "volumen : " << t1.getvolumen << endl ; // aqui tambien
return 0;
}
cuando ejecuto el programa me sale error recpecto al operador << me sale el siguiente mensaje
C:\Documents and Settings\Administrador\Escritorio\Pepiam.cpp|74|error: no match for 'operator<<' in 'std::operator<< [with _Traits = std::char_traits<char>](((std::basic_ostream<char, std::char_traits<char> >&)(& std::cout)), ((const char*)"canal : ")) << t1.televisor::getcanal'|
agradeceria su ayuda y explicasion por que no entiendo por que surge ese error!
gracias!
Se aprende a programar programando...
Más información sobre la lista de distribución Cconclase