封装不是万能的别以为有了类的封装性,私有成员就可以高枕无忧。
#include <iostream>
using namespace std;
class A
{
int a;
public:
A(int aa):a(aa){}
int & get()
{
return a;
}
void show() const
{
cout << "a = " << a << endl;
}
};
void main()
{
A obj(2);
obj.show();
//修改了类的私有成员,结论:不要让成员函数返回一个非常引用(指针)
obj.get() = 6;
obj.show();
}
甚至成员是常函数仍可以通过返回一个非常引用深入到对象内部。
结论:不要让成员函数返回一个非常引用(指针)。