我在玩参考变量。而且我了解到我可以使用类的引用直接从类外部修改类私有变量。 这是代码:
#include <iostream>
using namespace std;
#define print(x) cout<<x<<endl;
class prison
{
private:
int victim;
public:
prison(int ele)
{
victim = ele;
}
int & lophol()
{
return victim;
}
void info()
{
print(victim)
}
};
int main()
{
prison sam{0};
int &culprit = sam.lophol();
culprit++;
culprit++;
sam.info();
}
Output:
$$ g++ -std=c++11 exp.cpp && ./a.out
2
我可以通过引用访问私有变量。 这种行为可以吗?
答案 0 :(得分:2)
从技术上讲,即使是从类外部,也可以通过引用访问私有变量。但是,请记住,将对私有变量的引用泄露给外部世界与“私有”的思想相冲突。出于某些原因,请阅读section about minimizing exposure to members in the C++ Core Guidelines,以保持成员的私密性。