如何在 C 中使用基类的构造函数和赋值运算符
从基类继承并打算覆盖特定的特定情况时会出现常见情况函数,同时维护基类的构造函数和赋值运算符集。在这种情况下,重写这些构造可能是不必要的,因为 C 提供了可行的替代方案。
显式调用构造函数和赋值运算符:
在这种方法中,派生类在其自己的构造函数和赋值运算符定义中显式调用基类的构造函数和赋值运算符。例如,请考虑以下情况:
<code class="cpp">class Base { public: Base(const Base& b) { /*...*/ } Base& operator=(const Base& b) { /*...*/ } }; class Derived : public Base { public: Derived(const Derived& d) : Base(d), // Base constructor additional_(d.additional_) // Additional member initialization { } Derived& operator=(const Derived& d) { Base::operator=(d); // Base assignment operator additional_ = d.additional_; return *this; } };</code>
隐式函数调度:
在派生类未显式重写基类的赋值运算符或复制构造函数的情况下,编译器自动分派到适当的基类方法。此功能演示如下:
<code class="cpp">class Base { int value_; }; class Derived : public Base { public: Derived& operator=(const Derived& d) { Base::operator=(d); // Implicit invocation of base operator= // Perform derived-specific assignment return *this; } }; </code>
以上是如何在派生类中使用基类构造函数和赋值运算符?的详细内容。更多信息请关注PHP中文网其他相关文章!