结构声明 C++ 中的 If 语句

If statement inside Struct Declaration C++

我对 C++ 中的结构和 if 语句有疑问

为了简单起见,我创建了一个示例代码来解释我的意图

int var = 10

struct example{
    int a;
    int b;
    if(var > 8){
        int c;
    }
};

我有一个代码库,它使用与上面类似的代码。注释掉 if 部分不会给出任何错误。 我的问题是

注意:我无法使用#if、#else 指令或std::optional 或其他标准库来缓解这种情况,所以请帮我找到另一个解决方案。

不,您不能在结构或 class 定义中使用 if 语句。相反,对于条件声明,您可以使用#if 指令。

#define var 10
struct example {
    int a;
    int b;
    #if var > 8
        int c;
    #endif
}

这会起作用。

'#if'是一个编译指令(预处理器指令)。另一方面,if 语句是运行时语句。

除此之外别无他法!

int main()
{
    int var = 10;
     if(var>10){
                struct example{
                int a;
                int b;
                int c;

             };
            }else {
                    struct example{
                    int a;
                    int b;

                  };

                }
      cout<<"Hello World";

       return 0;
}

有多种方法可以解决您的问题,其中显示了一种实现方法。

我们不能在结构中添加 if 语句。