C++繼承機(jī)制如何設(shè)置訪問權(quán)限

c++
小樊
81
2024-11-08 23:40:27
欄目: 編程語言

在C++中,繼承機(jī)制允許我們創(chuàng)建一個(gè)新類(派生類)來繼承另一個(gè)類(基類)的屬性和方法。為了控制基類成員在派生類中的訪問權(quán)限,我們可以使用訪問修飾符(public, protected, 和 private)。

以下是如何在C++中設(shè)置繼承機(jī)制中的訪問權(quán)限的示例:

#include <iostream>

// 基類
class Base {
public:
    // 公共成員
    void publicMember() {
        std::cout << "This is a public member of Base class." << std::endl;
    }

protected:
    // 受保護(hù)的成員
    void protectedMember() {
        std::cout << "This is a protected member of Base class." << std::endl;
    }

private:
    // 私有成員
    void privateMember() {
        std::cout << "This is a private member of Base class." << std::endl;
    }
};

// 派生類
class Derived : public Base {
public:
    // 公共成員
    void publicMember() {
        std::cout << "This is a public member of Derived class." << std::endl;
    }

    // 受保護(hù)的成員
    void protectedMember() {
        std::cout << "This is a protected member of Derived class." << std::endl;
    }

    // 使用基類的私有成員(無法直接訪問)
    void accessPrivateMember() {
        // Base base; // 錯(cuò)誤:無法在派生類外部創(chuàng)建基類的實(shí)例
        Base::privateMember(); // 正確:使用基類名稱訪問私有成員
    }
};

int main() {
    Derived d;
    d.publicMember(); // 正確:派生類可以訪問基類的公共成員
    // d.protectedMember(); // 錯(cuò)誤:派生類無法直接訪問基類的受保護(hù)成員
    // d.privateMember(); // 錯(cuò)誤:派生類無法直接訪問基類的私有成員

    d.accessPrivateMember(); // 正確:通過基類名稱訪問私有成員

    return 0;
}

在這個(gè)示例中,我們創(chuàng)建了一個(gè)名為Base的基類,其中包含公共成員、受保護(hù)成員和私有成員。然后,我們創(chuàng)建了一個(gè)名為Derived的派生類,它繼承自Base類。在派生類中,我們可以訪問基類的公共成員和受保護(hù)成員,但不能直接訪問基類的私有成員。如果需要訪問基類的私有成員,我們可以使用基類名稱進(jìn)行訪問。

0