首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

嵌套类与外围类的私有成员,该如何解决

2013-01-26 
嵌套类与外围类的私有成员嵌套类以外围类对象为自己的私有数据成员,难道就能通过这个对象去访问外围类对象

嵌套类与外围类的私有成员
嵌套类以外围类对象为自己的私有数据成员,难道就能通过这个对象去访问外围类对象的私有成员?

#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的成员函数访问私有变量差不多。
[解决办法]
引用:
首先这里并没有声明友类。按你们说的,但显然不是因为item是嵌套类所以相当于友元,又是否是因为嵌套类中用了外围类的对象作为子对象,才有此状况?
  可不可以这样说:若一个类用另一个类对象作为子对象,那么这个类就是子对象所在类的友类?


其实,类的基本概念理解了,就行了。这个属于类最基本的概念(类的成员函数可以访问private变量)里的。
只是初看起来有点陌生罢了。

热点排行