相关疑难解决方法(0)

C++中的内部类是自动的朋友吗?

如果我在C++中定义一个内部类,它是否自动成为包含它的类的朋友?例如,这是合法的:

class Outer {
public:
    class Inner {
    public:
        void mutateOuter(Outer& o);
    };

private:
    int value;
};

void Outer::Inner::mutateOuter(Outer& o) {
    o.value ++; // Legal?  Or not?
}
Run Code Online (Sandbox Code Playgroud)

我问,因为在我试过的一些编译器(VS2003)上,这段代码不起作用,但我至少听说过它在某些编译器上有效.我无法在C++规范中找到关于此的相关部分,如果有人能够引用某些特定内容,那就是说它是合法的还是不合法的.

c++ friend nested-class

68
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×1

friend ×1

nested-class ×1