在下面的代码中:
class Outer {
private:
void f_private(Outer::Inner in); // Wrong
public:
class Inner {};
void f_public(Outer::Inner in); // OK
};
f_private()
无法使用嵌套类Outer::Inner
作为参数类型。但在f_public()
中这样做是可以的。
有人能解释一下这个规则基于什么,以及它的好处是什么吗?