是的,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
類中的成員。