Как использовать конструкторы базового класса и оператор присваивания в C ++?
У меня есть классB
с набором конструкторов и оператором присваивания.
Вот:
class B
{
public:
B();
B(const string& s);
B(const B& b) { (*this) = b; }
B& operator=(const B & b);
private:
virtual void foo();
// and other private member variables and functions
};
Я хочу создать наследующий классD
это просто переопределит функциюfoo()
и никаких других изменений не требуется.
Но я хочуD
иметь такой же набор конструкторов, включая конструктор копирования и оператор присваивания, какB
:
D(const D& d) { (*this) = d; }
D& operator=(const D& d);
Должен ли я переписать их все вD
или есть способ использоватьB
конструкторы и оператор? Я бы особенно хотел избежать переписывания оператора присваивания, потому что он должен иметь доступ ко всемB
переменные закрытого члена.