Lassen Sie sagen, ich habe folgende KlassenCompiler Hilfe in Zuweisungsoperator der Basis abgeleitet
class Base
{
// default CTOR
// default Copy Assignment
};
class Derived : public Base
{
public:
Derived()
// Calls base constructor
{
// implementation
}
Dervied& operator=(const Dervied& other)
{
A::operator = (other); // Why can't compiler offer this by default
// implementation
}
};
Ich bin neugierig zu wissen, warum nicht Angebot Aufruf Basis des Zuweisungsoperators während abgeleiteter Zuweisung von Standard-Compiler können, warum müssen wir ausdrücklich auf nennen. Habe ich einen Fall übersehen, in dem dies (Aufruf von A :: operator = (other)) nicht erforderlich wäre.
Für Konstruktoren Compiler haben diese Berücksichtigung (d. H. Aufruf der Basiskonstruktor während der abgeleiteten Konstruktion).
Ich verstehe nicht, wonach Sie fragen? All dies wird standardmäßig nur dann bereitgestellt, wenn Sie keine eigene Implementierung bereitstellen. –
Ich denke, Sie könnten http://en.cppreference.com/w/cpp/language/using_declaration verwenden, zum Beispiel: mit Base :: operator =; – Roby