【问题标题】:How to use a class function in C++?如何在 C++ 中使用类函数?
【发布时间】:2023-04-09 08:18:01
【问题描述】:

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

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

【问题讨论】:

  • 你为什么要在另一个类中声明类?

标签: c++ class friend


【解决方案1】:

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

【讨论】:

  • 非常感谢您对前向声明的提示!
  • 我仍然很好奇为什么在第二个示例中没有前向声明你可以逃脱......
猜你喜欢
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多