在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)行訪問。