c++ - C++ 中嵌套类型/类的前向声明

标签 c++ class nested forward-declaration

我最近遇到了这样的情况:

class A
{
public:
    typedef struct/class {…} B;
…
    C::D *someField;
}

class C
{
public:
    typedef struct/class {…} D;
…
    A::B *someField;
}

通常你可以声明一个类名:

class A;

但是你不能前向声明一个嵌套类型,下面会导致编译错误。

class C::D;

有什么想法吗?

最佳答案

你做不到,这是C++语言的一个漏洞。您必须取消嵌套至少一个嵌套类。

关于c++ - C++ 中嵌套类型/类的前向声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33818744/

相关文章:

C++ - 将输入函数作为字符串调用

c++ - 画线到QImage

c++ - 如何将 const 成员函数作为非常量成员函数传递

java - 运行java参数化类给出错误

r - 操作嵌套数据

c++ - 带有 header 的发布请求中出现错误 411(需要长度),但 header 具有 Content-Length。库 curl

c++ - 创建 DNA 序列的补码并将其反转 C++

c++ - 默认析构函数释放类的数组成员,C++

java - Java 中嵌套 Switch 语句的替代方案

Laravel:查询和访问与 where 子句嵌套关系的子对象