是的,C++支持隐藏继承(也称为非虚继承)。隐藏继承是指派生类继承基类时,基类的成员在派生类中的访问级别被降低。这意味着派生类中的成员会隐藏基类中具有相同名称的成员。隐藏继承在需要避免基类成员被派生类对象的多个实例共享时非常有用。
以下是一个隐藏继承的示例:
#include <iostream>
class Base {
public:
int value;
};
class Derived : private Base { // 使用私有隐藏继承
public:
void printValue() {
std::cout << "Derived value: " << value << std::endl;
}
};
int main() {
Derived d;
d.value = 42;
d.printValue(); // 输出 "Derived value: 42"
return 0;
}
在这个例子中,Derived
类使用私有隐藏继承从 Base
类继承。这意味着 Base
类中的 value
成员在 Derived
类中被隐藏。因此,在 Derived
类的成员函数 printValue
中访问 value
时,它指的是 Derived
类中的成员,而不是 Base
类中的成员。