📜  访问控制允许方法 (1)

📅  最后修改于: 2023-12-03 14:57:40.534000             🧑  作者: Mango

访问控制允许方法

在编程中,我们需要考虑如何保护代码的安全性和隐私性,访问控制是其中一个重要的方面。在面向对象编程中,访问控制是通过控制类的成员变量和成员函数的访问权限来实现的。我们可以使用不同的访问控制允许方法来控制代码的访问权限。

访问控制允许方法

有三种主要的访问控制允许方法:public、private和protected,它们分别用于控制成员变量和成员函数的访问权限。

public

使用public访问控制允许方法,可以使得成员变量和成员函数对于类的内部以及外部都是可见的。这意味着,我们可以在任何地方使用该类的对象来访问这些成员变量和成员函数。

class MyClass {
public:
    int num;
    void inc() {
        num++;
    }
};

int main() {
    MyClass obj;
    obj.num = 0;
    obj.inc();
    cout << obj.num << endl; // 输出1
    return 0;
}
private

使用private访问控制允许方法,可以使得成员变量和成员函数对于类的外部是不可见的,只能在该类的成员函数内部访问。

class MyClass {
private:
    int num;
    void inc() {
        num++;
    }
public:
    void print() {
        cout << num << endl;
    }
};

int main() {
    MyClass obj;
    // obj.num = 0; // 错误:num是一个private成员
    // obj.inc();   // 错误:inc是一个private成员
    obj.print();      // 输出随机数
    return 0;
}
protected

使用protected访问控制允许方法,可以使得成员变量和成员函数对于类的外部是不可见的,但可以在该类的派生类(子类)中访问。

class MyClass {
protected:
    int num;
    void inc() {
        num++;
    }
};

class ChildClass : public MyClass {
public:
    void print() {
        cout << num << endl;
        inc();
    }
};

int main() {
    ChildClass obj;
    // obj.num = 0;   // 错误:num是protected成员
    // obj.inc();     // 错误:inc是protected成员
    obj.print();        // 输出随机数,并将其加1
    obj.print();        // 输出随机数,并将其加1
    return 0;
}
总结

访问控制是保护代码安全性和隐私性的一个重要组成部分。public、private和protected是三种常见的访问控制允许方法,它们分别用于控制成员变量和成员函数的访问权限。我们可以根据需要选择不同的访问控制允许方法来实现代码保护。