我有以下两个类:
class A{
enum ee{a = 1, b = 2 , c = 3};
};
class B{
/*
*/
};
现在我想在 B 类中使用 enum ee 如何与 A 类中的 enum ee 成为 friend ?\
最佳答案
您可以使用这种方法更有选择性地限制访问:
class B;
class A {
class inner {
enum ee {a = 1, b = 2 , c = 3};
friend class B;
};
public:
typedef inner exposed;
};
class B {
void f() {
const A::exposed::ee e(A::exposed::a);
}
};
这在其他选项之上引入了限制,以便在您希望/需要更具体的 wrt 访问时使用。
具体来说,A
不需要使用这种方法与 B
成为 friend ,并且 A::inner
中的声明被限制为你指定了。 A::inner
然后可以将其声明保密,并允许通过友元访问。客户端可以声明一个 inner
(通过 A::exposed
访问),但如果枚举类型和常量是私有(private)的,它对客户端没有实际用途。
关于c++ - 如何枚举我类的 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11878633/