封装与访问控制public&private&protected

在C++中,封装是一种将数据和操作数据的函数捆绑在一起,并以一种隐藏内部实现细节的方式公开接口的过程。访问控制是一种限制对类的成员的访问的方式。C++提供了三种访问控制:public、private和protected。

  1. Public:如果一个类的成员被声明为public,那么它就可以被这个类的所有实例以及所有派生类实例所访问。这是最宽松的访问控制级别。通常,我们把那些需要在类外部直接访问的成员函数或者变量声明为public。
class MyClass {
public: // 下面的成员都是公共的
    int public_member;
    void public_function() {}
};
  1. Private:如果一个类的成员被声明为private,那么它只能被这个类的成员函数访问。这意味着,你不能从类的实例或者派生类实例直接访问private成员。通常,我们把那些只需要在类内部使用的成员函数或者变量声明为private。
class MyClass {
private: // 下面的成员都是私有的
    int private_member;
    void private_function() {}
public: // 以下成员是公开的,但不能直接访问private成员
    void access_private_member() {
        private_member = 10; // 可以访问private成员
    }
};
  1. Protected:protected成员可以被其自身、其子类以及其友元类访问。它是派生类可以访问基类成员的一种方式。通常,我们把那些需要在派生类中使用的成员函数或者变量声明为protected。
class MyBaseClass {
protected: // 下面的成员都是受保护的
    int protected_member;
    void protected_function() {}
public: 
    void access_protected_member() {
        protected_member = 10; // 可以访问protected成员
    }
};
class MyDerivedClass : public MyBaseClass {
public: // 可以直接访问protected成员
    void access_protected_member_from_derived() {
        protected_member = 20; // 可以访问protected成员
    }
};

总结
这些访问控制级别提供了封装和信息隐藏的手段,让我们更灵活,更安全的管理接口和实现。

你可能感兴趣的:(C/C++,开发语言,c++)