【发布时间】:2012-11-30 09:57:46
【问题描述】:
如果我有两个继承类如下:
class A
{
...
}
class B : public A
{
...
}
第三类定义为朋友类A:
class C
{
friend class A;
}
我能否从class B(也是A 类型的对象)访问class C 的所有成员,就像我首先定义了class B 朋友类一样?
【问题讨论】:
-
当你尝试它时会发生什么?您尝试的时间比我们回答的时间短。
-
对不起,我应该补充一点,我已经尝试过但它不起作用,我认为这很令人惊讶......
-
不起作用,这意味着您无法从 B 类访问 C 类的所有成员?
-
喜欢吹毛求疵就叫它,但B不是A类的对象,它继承自A。
-
@RobertHarvey 是的,如果我尝试从 B 类的函数访问 C 类的受保护/私有成员,我会收到“不可见”错误。我想这回答了我的问题,但我正在寻找一个理由......
标签: c++ inheritance friend access-control