📜  C++ 中的默认访问说明符(1)

📅  最后修改于: 2023-12-03 15:29:52.333000             🧑  作者: Mango

C++中的默认访问说明符

在C++中,每一个类通常被设计为一个独立的模块,其成员函数和数据成员可能被其他模块调用和访问。为了实现这一点,C++提供了三种访问说明符,即一个类成员的访问权限可以是public(公共),protected(保护)和private(私有)。默认情况下类成员定义在public部分。

公共访问权限

公共访问权限是最广泛的一种访问方式,定义在该部分的成员可以被外部函数和类所访问、调用或修改。一般来说,所有的构造函数、成员函数以及数据成员的定义都应该在该部分进行。

例如:

class Example {
public:
    int publicInt;
    Example() {
        // 构造函数
    }
    void publicFunction() {
        // 公有成员函数
    }
};

在上述示例中,publicInt和publicFunction均被定义在public部分,因此可以被外部函数和类所直接访问。

保护访问权限

受保护访问权限比公共访问权限更为具体,只有该类及其派生类成员函数和友元函数才能够访问和修改。一般情况下,保护访问权限用于只想在该类的子类调用或者修改的成员。

例如:

class Example {
protected:
    int protectedInt;
    void protectedFunction() {
        // 受保护成员函数
    }
};
class DerivedExample : public Example {   // DerivedExample是Example的子类
public:
    void changeProtected() {
        protectedInt = 1;
        protectedFunction();
    }
};

在上述示例中,我们将protectedInt和protectedFunction定义在protected部分,但是可以被子类访问。在子类DerivedExample中,我们可以使用protectedInt和protectedFunction。

私有访问权限

私有访问权限是最为严格的访问权限,只有在该类的成员函数中才可以直接使用。一般情况下,私有访问权限用于只想在该类内部访问和修改的成员。

例如:

class Example {
private:
    int privateInt;
    void privateFunction() {
        // 私有成员函数
    }
public:
    void setValue() {
        privateInt = 1;
        privateFunction();
    }
};

在上述示例中,我们将privateInt和privateFunction定义在private部分,因此只能在该类内部访问。可以使用公有函数setValue来修改privateInt的值。

总结

在C++中,我们可以通过public、protected和private关键字进行访问权限的声明。其中,public访问权限允许所有的函数和类访问成员,protected访问权限只允许子类及其友元类访问成员,private访问权限只允许类内部成员访问成员。在进行类的设计时,需要根据实际需要进行访问权限的声明,以保证程序的正确性和安全性。