普通函数可不可以直接访问private里面的变量
时间: 2023-11-11 15:06:44 浏览: 75
利用虚函数让private外部访问成为可能!
普通函数不能直接访问 private 成员变量,因为 private 成员变量只能在类内部访问,类外部的函数无法直接访问。
如果需要在类外部访问 private 成员变量,可以提供 public 成员函数来实现。例如,可以提供一个 public 成员函数来获取 private 成员变量的值:
```c++
class MyClass {
private:
int myVar;
public:
void setMyVar(int var) {
myVar = var;
}
int getMyVar() const {
return myVar;
}
};
```
在这个例子中,私有成员变量 myVar 被声明为私有,外部函数无法直接访问。但是,类提供了一个公共的 setMyVar() 函数,可以设置 myVar 的值,并提供了一个公共的 getMyVar() 函数,用于获取 myVar 的值。这样,在外部函数中就可以通过调用 setMyVar() 和 getMyVar() 函数来访问 myVar 的值了。
需要注意的是,如果在类定义中使用了 friend 关键字,可以允许某些函数访问 private 成员变量。但是,这种做法可能会破坏封装性原则,应该尽量避免使用。
阅读全文