多继承,一个子类可以有多个父类,它继承了多个父类的特性。这种机制提供了强大的灵活性,但也带来了复杂性,特别是当涉及到基类中的同名成员(包括成员函数和变量)时。
C++ 类从多个类继承成员,语法如下(继承方式是 public、protected 或 private ):
class <派生类名>:<继承方式1><基类名1>,<继承方式2><基类名2>,…
{
<派生类类体>
};
多继承示例:
class Base1 {
public:
void func1() { /* ... */ }
};
class Base2 {
public:
void func2() { /* ... */ }
};
class Derived : public Base1, public Base2 {
public:
void func3() {
func1(); // 调用 Base1 的 func1
func2(); // 调用 Base2 的 func2
}
};
访问基类成员
派生类中,可以通过基类名和作用域解析运算符(::
)指定要访问的基类成员,这在基类有同名成员时特别有用。
class Derived : public Base1, public Base2 {
public:
void func() {
Base1::func1(); // 明确调用 Base1 的 func1
Base2::func1(); // 假设 Base2 也有一个 func1,则这样调用
}
};