在C++中,默認關鍵字通常與繼承相關聯。當一個類繼承另一個類時,如果沒有指定訪問修飾符(public、protected或private),默認情況下繼承方式為private繼承。
例如,下面的代碼示例演示了默認情況下的私有繼承:
class Base {
public:
void foo() {
std::cout << "Base class foo" << std::endl;
}
};
class Derived : Base {
public:
void bar() {
std::cout << "Derived class bar" << std::endl;
}
};
int main() {
Derived d;
d.foo(); // 編譯錯誤,foo()在Derived類中不可訪問
d.bar(); // 正常輸出Derived class bar
return 0;
}
在上面的例子中,Derived類繼承自Base類,默認情況下是私有繼承。因此,在main函數中,Derived類的對象d不能直接訪問Base類的成員函數foo。
如果想要修改默認繼承的方式,可以使用public、protected或private關鍵字來明確指定。例如,可以將Derived類改為使用公有繼承:
class Derived : public Base {
public:
void bar() {
std::cout << "Derived class bar" << std::endl;
}
};
這樣一來,Derived類就可以直接訪問Base類的成員函數foo了。