[C con Clase] operador "<<"
Israel Alberto Roldan Vega
israel.alberto.rv en gmail.com
Dom Nov 27 17:28:30 CET 2011
Que tal,
El error esta solucionado agrega los paréntesis ()
cout << "canal : " << t1.getcanal() << endl ; // aqui esta el problema
cout << "volumen : " << t1.getvolumen() << endl ; // aqui tambien
Porque esta mandando a llamar un función o método y no una variable:
int televisor :: getcanal (){
}
Saludos,
Israel Alberto RV
El 27 de noviembre de 2011 09:34, jose luis <jcmdustin en gmail.com> escribió:
> 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...
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111127/8461cc76/attachment.html>
Más información sobre la lista de distribución Cconclase