C++关于private的访问

这是Emule源码:
CUInt128::CUInt128(const CUInt128 &uValue, UINT uNumBits)
{
// Copy the whole ULONGs
UINT uNumULONGs = uNumBits / 32;
for (UINT iIndex=0; iIndex<uNumULONGs; iIndex++)
m_uData[iIndex] = uValue.m_uData[iIndex];
//这里的m_uData[iIndex]是CUInt128类的私有成员变量,这样子的访问是可行的,就是不知道原因,记起以前百度百科见过的C++ string,也有这样的用法,知道怎么回事的请多多指教,谢谢各位先了!

// Copy the remaining bits
for (UINT iIndex=(32*uNumULONGs); iIndex<uNumBits; iIndex++)
SetBitNumber(iIndex, uValue.GetBitNumber(iIndex));

// Pad with random bytes (Not seeding based on time to allow multiple different ones to be created in quick succession)
for (UINT iIndex=uNumBits; iIndex<128; iIndex++)
SetBitNumber(iIndex, (rand()%2));
}
本类成员函数访问本类的成员,想一下这个我知道!
但是现在是本类对象访问它原来自己的private,不是成员函数在访问。
再求指导!!

这不就是本类成员函数访问本类的成员,没有private、protected、public之分,这个private是禁止外部非友元访问,对于本类成员函数,不管是this还是某对象的都没有问题的
不管是const还是引用,都是自己类的对象
任何一本正常的C++教科书上都有啊,private不就是只能被本类成员函数访问的权限
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-02
成员访问控制符public、private以及protected都是基于类而言的,如果一个类标记了private访问权限,其意思是——这个类以外的其他类(友元类除外)无法访问被private修饰的本类成员,但是本类自身的其他对象是不受成员访问符限制的。本回答被提问者采纳
相似回答