快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和记娱专业h88285:私有数据一定安全吗?



C++的造访阐明符(public private protected)供给了对类内部数据的造访限定。我曩昔不停以为将成员阐明为private就可以包管其数据不被外界读取和改写,直到现在发明自己误解了。

且看这个小例子:

#include

using namespace std;

class st和记娱专业h88285ru_a

{

public:

stru_a::stru_a();

private:

int m_int;

long m_long;

};

stru_a::stru_a()

{

m_int = 1865;

m_long = 9527;

}

int main()

{

stru_a a;

stru_a *p = &a;

//cout

从着末的运行结果可以看出,虽然m_int和m_long都是类的私有成员,然则仍旧可以经由过程指针造访。

关于其缘故原由,《C++编程思惟》上有一段解释的很精辟,摘抄如下:

1. 在一个特定的造访块(被造访阐明符限制的一组声明)内,成员变量在内存中是继续寄放的;

2. 法度榜样运行之前,所有的造访阐明都消掉了....在法和记娱专业h88285度榜样运行时代,工具变成了一个存和记娱专业h88285储区域,别无他物(HateMath注:即和记娱专业h88285造访节制符只是在和记娱专业h88285编译时起感化,防止法度榜样员误造访不该造访的内容。假如你执意用其余要领造访某个私有成员,C++编译器没法阻拦。)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: