【问题标题】:Use struct with forward declaratio使用带有前向声明的结构
【发布时间】:2021-10-19 16:40:52
【问题描述】:

我需要在实际声明结构之前使用它,这怎么可能?谢谢你。 我需要在声明之前使用 C1,但我收到不完整的类型错误。

   struct C1;
    
    struct Cap
    {
        C1 l1;
    };
    
    struct C1 : Cap
    {
    };

【问题讨论】:

  • 你不能。 C++ 不能以这种方式工作。您可以尝试使用指针,或解释您的real 问题。
  • 如果C1Cap,这就是struct C1 : Cap 所说的,那么为什么Cap 需要C1 成员?
  • C1 是一个Cap,即它包含一个Cap 子对象,每个Cap 包含一个C1,每个C1 都包含一个Cap 作为子对象Cap 包含一个 C1 成员,依此类推。这不是使您的代码无法工作的 C++ 限制。您要解决的实际问题是什么?您的代码不是解决方案

标签: c++ c++11 c++14


【解决方案1】:

您不能在Cap 结构中按值使用C1,因为计算Cap 对象的大小需要知道C1 的大小。

您可以通过引用 (C1&) 或指针 (C1*) 来使用它,因为指针的大小是已知大小。

【讨论】:

    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 2017-04-05
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多