[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