5

当一个类error: 'func' does not name a type的成员函数尝试返回一个类时,我得到一个:funcBC

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

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

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

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

        C func() const {
            ...
        }

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

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

我在这里找到了一个很好的例子。

4

1 回答 1

8

在 B 类“上方”定义 C 类,或向前声明它。

于 2013-03-17T05:34:24.487 回答