首页 > 解决方案 > 为什么我们不能在现代 C++ 中省略具有默认初始值设定项列表的数组类型成员变量的容量?

问题描述

在现代 C++ 中,成员变量可以显式初始化。然而,虽然我们可以在使用初始化列表的函数中定义本地数组时省略数组的容量,但我们不能省略数组成员的容量,即使它有初始化列表。

例如,在以下代码中:

A类{
    int a[]{1,2,3,4}; // 错误
    诠释 b[4]{};
    诠释 c[4]{1,2,3,4};
};

这给成员变量一个错误a

数组界限不能从类内初始化器中推导出来

我很好奇,为什么不允许这种定义?

标签: arraysc++11list-initializationclass-members

解决方案


推荐阅读