c++学习 之 类和对象 public , protected ,private

前言

在C++中,访问控制修饰符(Access Control Modifiers)用于控制类的成员(成员变量和成员函数)的访问权限。这些修饰符分为三种:public、protected和private。它们定义了成员可以在何处访问,具体如下:

public:
public成员在类内部和外部都是可访问的。
这意味着任何地方都可以直接访问类的public成员。
protected:

protected成员在类内部可访问,但在类外部是不可访问的。
子类(派生类)可以访问其父类的protected成员。
private:

private成员只能在类的内部访问,对外部是隐藏的。
不能被类的子类访问。

下面是一个示例,说明这些访问控制修饰符的使用:

#include <iostream>

class MyClass {
public:
    int publicVar;       // public 成员
    void PublicMethod() {
        std::cout << "Public method." << std::endl;
    }

protected:
    int protectedVar;    // protected 成员
    void ProtectedMethod() {
        std::cout << "Protected method." << std::endl;
    }

private:
    int privateVar;      // private 成员
    void PrivateMethod() {
        std::cout << "Private method." << std::endl;
    }
};

// 上面 三种权限在这个类里面都是可以访问的

class MyDerivedClass : public MyClass {
public:
    void AccessProtected() {
        protectedVar = 42;  // 子类可以访问父类的 protected 成员
        ProtectedMethod();  // 子类可以调用父类的 protected 方法
    }
};

int main() {
    MyClass myObj;
    myObj.publicVar = 10;     // 可以直接访问 public 成员
    myObj.PublicMethod();     // 可以调用 public 方法

    // 下面的代码无法通过编译,因为 protectedVar 和 ProtectedMethod 是 protected 的
    // myObj.protectedVar = 20;
    // myObj.ProtectedMethod();

    MyDerivedClass derivedObj;
    derivedObj.AccessProtected();  // 子类可以访问 protected 成员和方法

    return 0;
}

总结起来,访问控制修饰符允许你控制类的成员对外部的可见性和可访问性,从而实现封装的概念,隐藏类的内部实现细节并提供合适的访问接口。

猜你喜欢

转载自blog.csdn.net/wniuniu_/article/details/132568198