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

标签 c++ class friend

当类 B 的成员函数 func 试图返回一个时,我得到了一个错误:'func' 没有命名类型 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 .

最佳答案

在 B 类“之上”定义类 C,或转发声明它。

关于c++ - 如何在 C++ 中使用类函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15457853/

相关文章:

scala - 如何从 sbt 0.10.0 项目中获取依赖项 jar 列表

C++ MFRC++ 如何将 memcpy() 与 mpfr::mpreal 一起使用?

c++ - MS visual studio IDE下如何使用g++编译器

c++ - 对 C++ 中类声明和实现的位置感到困惑

java - java 中单实例类的最佳实践是什么?

C++显式转换和隐式转换

c++ - 友元得到继承??奇怪的

c++ - 使用 linux 功能读取 block 的不连续运行

c++ - 涉及STL排序算法的令人困惑的SegFault

c++ - 模板组合和友元传递性