Я играл со ссылочной переменной.И я узнал, что я могу напрямую изменять приватную переменную класса извне класса, используя ее ссылку.Вот код:
#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
Я могу получить доступ к закрытой переменной через ссылку.Это поведение нормально?