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

新手急问:怎么调用嵌套类的成员?

2012-03-22 
新手急问:如何调用嵌套类的成员???class A{int p}class B{int mA*a}如何通过类B 来访问类A的成员p?谢

新手急问:如何调用嵌套类的成员???
class A  
  {
  int p
  };
  class B
  {
  int m;
  A *a;
  };
  如何通过类B 来访问类A的成员p? 谢谢大家了啊

[解决办法]
在你的如下类声明中:

class A

int p; 
}; 

class B 

int m; 
A *a; 
}; 

如果B类能够通过指针成员a去随意访问A的成员p,那么类就是失去了封装性,这是支持OOP的语言特性所不允许的!
要使B类的愿望可以实现,则必须经过A类的"许可",这才不失封装的特性!那就是在A类中声明其友员类,例如:

class B;//B类的预引用;

class A

int p; 
public:
A(){ p = 88;};//演示用!

friend class B;//声明B类为本类的友员类!
}; 

class B 

int m; 
A *a; 
public:

//为你的B类润色,以利于演示:
B(){ *a = new A;}
~B(){ delete a;}

void fish6344(void)
{
cout << "A类成员p = " << a->p << endl;
}
}; 

int main()
{
B b;
b.fish6344(); //"A类成员p = 88"

_PAUSE;
return 0;
}

上述程序行为良好,足以满足你的需求!

热点排行