Witam
Mam problem ze zrozumieniem dziedziczenie przeładowanych operatorów.
W przykładowym programie mam klasę:
class cwiczenie { public: int a; float b; string d; public: cwiczenie(); cwiczenie(int a,float b,string d); friend ostream& operator<<(ostream& os, const cwiczenie& c) { os << c.a << '/' << c.b << '/' << c.d; return os; } cwiczenie operator+(const cwiczenie &p) { cwiczenie temp; temp.a=a+p.a; temp.b=b+p.b; temp.d=d+""+p.d; return temp; } }; cwiczenie::cwiczenie () { a=10; b=5.2; d="okk"; } cwiczenie::cwiczenie(int f,float g,string h) { a=f; b=g; d=h; }
oraz klasę dziedziczącą z niej:
class pochodna:public cwiczenie { public: int k; pochodna(int j,int k,string l,int l):cwiczenie(a,b,d) { k=l; } pochodna():cwiczenie() { k=0; } friend ostream & operator <<(ostream & os, const pochodna & x ) { os << reinterpret_cast < const cwiczenie &>( x ); os << "k = "<< x.k <<endl; return os; };
Nie rozumiem jak korzystać z odziedziczonych operatorów,jeśli klasa pochodna jest rozszerzona o zmienne,ktorych nie posiada klasa bazowa.
Udało mi się wyszukać w internecie rozwiązanie problemu z operatorem << i faktycznie w ten sposób działa,ale jak rozwiązać problem z operatorem+,żeby dodawał również zmienne "k",których brak w klasie bazowej,bez ponownego deklarowania operatora?
Z góry dzięki za poświęcony czas i odpowiedź