让朋友类只能访问另一个类的1个函数吗?

时间:2010-10-11 02:26:48

标签: c++

  

可能重复:
  Is this key-oriented access-protection pattern a known idiom?

我有class Aclass B。我希望class A访问class B个私人函数之一;但只有这一点,而不是其他一切。这可能吗?

某种例子:

class A {
  //stuff
};

class B {
  int r; // A cant use this
  MagicFriendKeyword A void func(); // A can use this
public:
  ...
};

1 个答案:

答案 0 :(得分:4)

如果A类中有一个(或几个)成员函数,想要使用B类的私有成员函数,那么您可以将这些/少数函数声明为朋友。 E.g。

class B {
    // ...
    friend void A::mutateB( B * );
    // ...
};

请参阅http://en.wikipedia.org/wiki/Friend_function