二级考试C 辅导:C 类的友元成员计算机二级考试

文章作者 100test 发表时间 2009:04:10 00:05:09
来源 100Test.Com百考试题网


  没有友元之前,一个类是不能直接访问其它类的private成员的
  引进友元机制是允许一个类的private,protected成员的访问权授予给指定的其它函数和其它类
  1.定义
  定义友元的关键字friend
  格式:
  class classname{
  ...
  friend functionname().//声明类的友元函数
  friend class othername().//声明类的友元类
  }.
  functionname(){} //定义友元函数代码细节
  class othername(){}. //定义友元友元类代码细节
  2.1.在类中定义友元函数
  代码举例
  //friend1.cpp pass with vc 6.0 or dev-c 4.9
  #include <.iostream>.
  class x{
  public:
  x():a(11),b(33){}//构造函数初始化列表
  friend void x_friend_f(x&.).
  friend class use_x.
  private:
  int a.
  int b.
  }.
  void x_friend_f(x&. xx)//x的友元函数实现
  {std::cout<.<.\"a,b in class x is: \"<.<.xx.a<.<.\",\"<.<.xx.b<.<.std::endl.}
  int main(){
  x demo.
  x_friend_f(demo).
  return 0.
  }
  .在类中定义友元类
  class screen{
  public:
  ...
  friend class window_msg.//在类中声明一个友元window_msg类
  priavte:
  int height.
  int width.
  int index.
  }.
  //在另一类window_msg中直接访问screen类的private成员
  class window_msg{
  public:
  ...
  }.
  //友元类可以直接访问
  window_msg&. window_msg::relocate(screen::index r,screen::index c,screen&. s)
  {
  s.height =r.
  s.width =c.
  return *this.
  }
  2.基类与派生类
  友元关系不能被继承,基类的友元对派生类的成员没有任何访问权限
  也就是说如果基类有友类函数和友元类,它们能访问基类任何成员,而不能访问由这个基类继承的派生类的任何成员
  3.设计指导
  类的友元函数又叫做类的非成员函数
  1.何时使用类的成员函数
  当我们对类自身对象进行操作时,操作如赋值=,下标(),调用(),自增 ,自减--
  操作的返回结果也在类的自身对象,就直接选择用成员方法实现
  2.何时使用类的非成员函数即友元函数
  当我们对类的两个以上对象进行操作时,如关系运算,输入>.>.,输出<.<.,请选用友元函数。

相关文章


二级C 辅导:C 中的EXIT与析构函数计算机二级考试
二级C 辅导:VC 编译错误信息大全计算机二级考试
二级考试C 辅导:C 长连接和短连接计算机二级考试
二级考试C 辅导:有关缺省变量值的限制计算机二级考试
二级考试C 辅导:C 类的友元成员计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛