以下代码在 MSVC 上编译:
#include <iostream>
class Bob
{
int a;
friend class Outer;
};
class Outer
{
class Inner
{
void f(Bob obj)
{
std::cout << obj.a; //OK
}
};
};
因此,似乎如果 Outer 是 Bob 的朋友,那么 Inner 也是自动的。我正在阅读标准的“朋友”一章,但找不到可以确认或反驳这一点的条款。
这是否合法,如果是,章节和经文是什么?