在C++中,可以使用成员初始化列表来初始化基类。这样就不需要两次输入整个基类类型。
以下是一个示例代码:
#include
class Base {
public:
Base(int value) : m_value(value) {
std::cout << "Base constructor called with value: " << m_value << std::endl;
}
void foo() {
std::cout << "Base foo() called" << std::endl;
}
private:
int m_value;
};
class Derived : public Base {
public:
Derived(int value) : Base(value) {
std::cout << "Derived constructor called with value: " << value << std::endl;
}
void bar() {
std::cout << "Derived bar() called" << std::endl;
}
};
int main() {
Derived derived(10);
derived.foo();
derived.bar();
return 0;
}
在上面的示例中,Derived
类继承自 Base
类。在 Derived
的构造函数中,通过使用成员初始化列表来初始化基类 Base
,而不是在构造函数的函数体中进行初始化。这样就避免了两次输入整个基类类型的问题。
运行上述代码,输出为:
Base constructor called with value: 10
Derived constructor called with value: 10
Base foo() called
Derived bar() called
这证明基类 Base
和派生类 Derived
的构造函数都被正确地调用了。