在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
类。在派生类中,我们可以访问基类的公共成员和受保护成员,但不能直接访问基类的私有成员。如果需要访问基类的私有成员,我们可以使用基类名称进行访问。