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

时间:2013-03-17 05:32:58

标签: 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:
        ...
}

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

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

        C func() const {
            ...
        }

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

如何修复它以使第一个版本有效?

我找到了一个很好的例子here

1 个答案:

答案 0 :(得分:8)

将“C”定义为“B类之上”,或者向前声明它。