Ich habe eine Basisklasse und eine "untergeordnete" Klasse namens Something, die private Vererbung für die Wiederverwendung von generiertem Code verwendet.private Vererbung in C++ und Wie wiederverwenden, aber dekorieren Sie einen Operator der Basisklasse?
class Base {
protected:
Base();
public:
virtual ~Base(){}
void cool();
Base& operator=(const Base& other);
};
class Something : private Base {
public:
Something();
void cool(){
// own stuff
// call method from base
Base::cool();
// own stuff
}
Something& operator=(const Something& other){
if (this != &other){
// do own things
Und jetzt hier, zwischen Dekoration, sollte der Anruf des Operators = von der Basisklasse sein. Aber ich bin mir nicht sicher, wie ich das richtig machen soll. Sollte ich dynamic_cast etwas wie folgt aus:
(dynamic_cast<Base>(*this)).operator =(dynamic_cast<Base>(other));
// do own things
}
return *this;
}
}
Mit freundlichen Grüßen.
Wäre das nicht 'this-> Basis :: operator = (andere)' Arbeit? – melpomene
'Base :: operator = (andere)' – Arunmu