跳到主要内容

C++中类型为private的成员变量可以由哪些函数访问 ?

参考答案:

在C++中,一个类的私有(private)成员变量只能由该类的成员函数访问,包括:

  1. 构造函数和析构函数:类的构造函数和析构函数可以访问私有成员变量,因为它们是类的特殊成员函数,用于初始化或清理对象的状态。

  2. 公有(public)成员函数:类的公有成员函数可以访问私有成员变量,因为公有成员函数是类的接口,用于在对象外部与对象进行交互。

  3. 保护(protected)成员函数:类的保护成员函数也可以访问私有成员变量。保护成员函数是介于公有和私有之间的一种访问级别,它们可以被类的成员函数(包括派生类中的成员函数)访问,但不能被类的对象直接访问。

以下是一个简单的示例,展示了如何在一个类的成员函数中访问私有成员变量:

class MyClass {
private:
    int myPrivateVariable;

public:
    MyClass(int value) : myPrivateVariable(value) {}  // 构造函数可以访问私有变量

    void setPrivateVariable(int value) {
        myPrivateVariable = value;  // 公有成员函数可以访问私有变量
    }

    int getPrivateVariable() const {
        return myPrivateVariable;  // 公有成员函数可以访问私有变量
    }
};

int main() {
    MyClass obj(10);
    obj.setPrivateVariable(20);  // 通过公有成员函数设置私有变量的值
    int value = obj.getPrivateVariable();  // 通过公有成员函数获取私有变量的值
    return 0;
}

在这个例子中,myPrivateVariable 是一个私有成员变量,它只能通过类的构造函数、setPrivateVariable 公有成员函数和 getPrivateVariable 公有成员函数来访问。