子类(派生类)使用父类(基类)的成员
在 C++ 中,子类(派生类)是否可以直接使用父类(基类)的成员,取决于以下几个因素:成员的访问权限(public、protected、private)、继承方式(public、protected、private)以及子类访问成员的方式。
C++ 继承和访问权限的基本规则
在 C++ 中,类的成员(变量、函数等)有三种访问权限:
- public:任何地方都可以访问(包括子类、外部代码)。
- protected:只有类本身、子类及其友元可以访问。
- private:只有类本身及其友元可以访问,子类无法直接访问。
#include <iostream>class Base {
public:int public_member = 1;
protected:int protected_member = 2;
private:int private_member = 3;
public:int get_private_member() const { return private_member; } // 提供间接访问
};class Derived : public Base {
public:void print_members() {std::cout << "public_member: " << public_member << std::endl; // 直接访问std::cout << "protected_member: " << protected_member << std::endl; // 直接访问// std::cout << "private_member: " << private_member; // 错误:无法直接访问std::cout << "private_member (via getter): " << get_private_member() << std::endl; // 间接访问}
};int main() {Derived d;d.print_members();return 0;
}