c++ default關(guān)鍵字和繼承有何關(guān)聯(lián)

c++
小樊
83
2024-07-10 11:15:30
欄目: 編程語言

在C++中,默認(rèn)關(guān)鍵字通常與繼承相關(guān)聯(lián)。當(dāng)一個(gè)類繼承另一個(gè)類時(shí),如果沒有指定訪問修飾符(public、protected或private),默認(rèn)情況下繼承方式為private繼承。

例如,下面的代碼示例演示了默認(rèn)情況下的私有繼承:

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(); // 編譯錯(cuò)誤,foo()在Derived類中不可訪問
    d.bar(); // 正常輸出Derived class bar
    return 0;
}

在上面的例子中,Derived類繼承自Base類,默認(rèn)情況下是私有繼承。因此,在main函數(shù)中,Derived類的對(duì)象d不能直接訪問Base類的成員函數(shù)foo。

如果想要修改默認(rèn)繼承的方式,可以使用public、protected或private關(guān)鍵字來明確指定。例如,可以將Derived類改為使用公有繼承:

class Derived : public Base {
public:
    void bar() {
        std::cout << "Derived class bar" << std::endl;
    }
};

這樣一來,Derived類就可以直接訪問Base類的成員函數(shù)foo了。

0