c++ - 在 C++ 中类应该以什么顺序声明?

标签 c++ class

<分区>

假设我得到了这个 C++ 代码:

class class1{
    class2 *x;
}

class class2{
    class1 *x;
}

编译器会在第 2 行给出一个错误,因为它找不到 class2,如果我切换类的顺序也是如此。我该如何解决这个问题?

最佳答案

两件事 - 第一,类声明后需要分号:

class class1{
    class2 *x;
};

class class2{
    class1 *x;
};

第二,您可以在类的定义前创建一个声明。这告诉编译器这个类存在,而你还没有定义它。在这种情况下,在 class1 的定义前面放置一个 class2 声明:

class class2 ;

class class1{
    class2 *x;
};

class class2{
    class1 *x;
};

关于c++ - 在 C++ 中类应该以什么顺序声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/757241/

相关文章:

xcode - 如何在 Xcode 和其他文件中同时复制 .h 和 .m 文件?

c++ - JAutodoc 类 C++ 插件

c++ - LNK 1120文字翻译

java - 使用继承时如何创建对象?

javascript - jsp &lt;input&gt; 值未通过类 form-control 显示

python - 如何在Python for循环中创建和删除类实例

ios - 从不同类调用方法有时有效,有时无效

c++ - 具有默认值的可变参数模板参数

c++ - 我可以将具有非常量值类型的映射转换为具有常量值类型的映射吗?

c++ - 指针和数组指向数组问题