友元(friend)

一个类A可以决定哪些(1)函数(2)成员函数(3)类 是它的友元。作为友元,可以直接访问类A的私有成员。

基本语法:

friend [函数或者类];

例:

class A
{
    friend class B;    // 类A选择B作为它的友元类
    friend void f(int a);    // 类A选择全局函数 void f(int a) 为它的友元类
    friend void B::g(int b);    // 类A选择B的成员函数 int g(int b) 为它的友元类
};

定义顺序问题

  1. 被选为友元的类或函数必须在其朋友之前定义清楚(完整定义)。如果被选为友元的类用到了其朋友,则应采用预先定义方法定义其朋友。如:
class A;
class B { };
class A { friend B; };
  1. 如果被选为友元的类用到其朋友的成员变量或函数,则应采用实现与定义分离的方法定义该类,同时,实现要在其朋友类的定义之后。

results matching ""

    No results matching ""