嵌套类与外围类的私有成员,该如何解决
嵌套类与外围类的私有成员嵌套类以外围类对象为自己的私有数据成员,难道就能通过这个对象去访问外围类对象
嵌套类与外围类的私有成员
嵌套类以外围类对象为自己的私有数据成员,难道就能通过这个对象去访问外围类对象的私有成员?
#include <iostream>
class test
{
public:
class item;
private:
int i;
test():i(10) {}
void f()
{
std::cout<<i+1<<std::endl;
}
};
class test::item
{
test a;
public:
void print()
{
std::cout<<a.i<<std::endl;//能访问私有成员?
a.f(); //同上
}
};
int main()
{
test::item b;
b.print();
return 0;
}
[解决办法]差点被搞晕了。
当然可以。有点和有元差不多。但item要通过test来访问。
[解决办法]同意楼上,相当于友类了吧。
[解决办法]item是test的一部分,就跟test的成员函数访问私有变量差不多。
[解决办法]其实,类的基本概念理解了,就行了。这个属于类最基本的概念(类的成员函数可以访问private变量)里的。
只是初看起来有点陌生罢了。