Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Przeciążony operator jako wirtualna metoda

Ostatnio zmodyfikowano 2013-06-17 17:29
Autor Wiadomość
Slimoleq
Temat założony przez niniejszego użytkownika
[C++] Przeciążony operator jako wirtualna metoda
» 2013-06-17 15:23:26
Krótkie pytanko, czy istnieje coś takiego jak wirtualna metoda operatorowa? Bardzo przydałaby mi się owa, natomiast nic na ten temat nie mogłem znaleźć, więc stąd pytanie, czy istnieje,
pozdrawiam :)
P-85734
unimator
» 2013-06-17 17:29:43
Trochę się pobawiłem i tak jak myślałem - metoda operatorowa działa w tym przypadku na takich samych zasadach jak zwykła:
C/C++
#define VIRTUAL

class CKlasa
{
public:
    bool a;
   
    #ifdef VIRTUAL
    virtual
    #endif
    CKlasa & operator !();
};

CKlasa & CKlasa::operator !()
{
    printf( "Metoda operatorowa bazowa.\n" );
    this->a = !this->a;
    return * this;
}

class CKlasaDziedziczaca
    : public CKlasa
{
public:
    #ifdef VIRTUAL
    virtual
    #endif
    CKlasaDziedziczaca & operator !();
};

CKlasaDziedziczaca & CKlasaDziedziczaca::operator !()
{
    printf( "Metoda operatorowa pochodna.\n" );
    return * this;
}

int main()
{
    CKlasa * obiektA = new CKlasaDziedziczaca;
    obiektA->a = false;
    !( * obiektA );
    printf( "%u", obiektA->a );
   
    return 0;
}
P-85737
« 1 »
  Strona 1 z 1