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ź