【发布时间】:2011-06-15 13:43:32
【问题描述】:
我想让一个内部类成为一个不相关类的朋友,但这似乎不起作用(至少在 gcc 4.1.2 中):
class A {
int i;
friend class B; // fine
friend class B::C; // not allowed?
};
class B {
int geti(A* ap) { return ap->i; }
class C {
int geti(A* ap) { return ap->i; }
};
};
【问题讨论】:
-
代码中有很多基本错误,请先修复这些错误:没有“B::C::geta()”,“A::i”是私有的。 “B::C::geti()”是私有的。
-
忽略主函数即可。
-
"忽略主函数即可。"极好的。当你告诉链接器时它起作用了吗?
-
好的——但是下次再做一个额外的步骤,制作+测试一个除了问题之外什么都没有显示的例子。并记住最终“接受”答案以获得良好的业力:-)
标签: c++ gcc friend inner-classes