如何在C++中使用类函数?

Pip*_*ppi 5 c++ class friend

error: 'func' does not name a type当一个func类的成员函数B试图返回一个类时,我获得了一个C:

class A {
    public:
        class B {
            public:
                C func() const {
                    ...
                }
            private:
                friend class A;
        }

        class C {
            public:
                ...
            private:
                friend class A;
        }
    private:
        ...
}
Run Code Online (Sandbox Code Playgroud)

然而,如果func是A的成员函数,则以下内容不会产生此错误:

class A {
    public:
        class B {
            public:
                ...
            private:
                friend class A;
        }

        C func() const {
            ...
        }

        class C {
            public:
                ...
            private:
                friend class A;
        }
    private:
        ...
}
Run Code Online (Sandbox Code Playgroud)

如何修复它以使第一个版本工作?

我发现了一个很好的例子在这里.

And*_*dyG 8

将类C定义为"B"以上,或者向前声明它.