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

jma*_*erx 5 c++

可能重复:
这种面向密钥的访问保护模式是一种已知的习惯用法吗?

我有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:
  ...
};
Run Code Online (Sandbox Code Playgroud)

Aru*_*run 3

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

class B {
    // ...
    friend void A::mutateB( B * );
    // ...
};
Run Code Online (Sandbox Code Playgroud)

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

  • 这不是问的。这仍然允许该函数访问 B 的_所有_成员。他想向 B 的单个成员授予访问权限。 (9认同)