在C++中,繼承機制允許我們創建一個新類(派生類)來繼承另一個類(基類)的屬性和方法。為了控制基類成員在派生類中的訪問權限,我們可以使用訪問修飾符(public, protected, 和 private)。
以下是如何在C++中設置繼承機制中的訪問權限的示例:
#include <iostream>
// 基類
class Base {
public:
// 公共成員
void publicMember() {
std::cout << "This is a public member of Base class." << std::endl;
}
protected:
// 受保護的成員
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;
}
// 受保護的成員
void protectedMember() {
std::cout << "This is a protected member of Derived class." << std::endl;
}
// 使用基類的私有成員(無法直接訪問)
void accessPrivateMember() {
// Base base; // 錯誤:無法在派生類外部創建基類的實例
Base::privateMember(); // 正確:使用基類名稱訪問私有成員
}
};
int main() {
Derived d;
d.publicMember(); // 正確:派生類可以訪問基類的公共成員
// d.protectedMember(); // 錯誤:派生類無法直接訪問基類的受保護成員
// d.privateMember(); // 錯誤:派生類無法直接訪問基類的私有成員
d.accessPrivateMember(); // 正確:通過基類名稱訪問私有成員
return 0;
}
在這個示例中,我們創建了一個名為Base
的基類,其中包含公共成員、受保護成員和私有成員。然后,我們創建了一個名為Derived
的派生類,它繼承自Base
類。在派生類中,我們可以訪問基類的公共成員和受保護成員,但不能直接訪問基類的私有成員。如果需要訪問基類的私有成員,我們可以使用基類名稱進行訪問。