[C++] Przeciążony operator jako wirtualna metoda
Ostatnio zmodyfikowano 2013-06-17 17:29
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 :) |
|
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: #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; }
|
|
« 1 » |