类内部的静态数组大小未知
C++: static array inside class having unknown size
我不熟悉这个。我在谷歌上搜索了一下,但没有找到答案。所以,把我的问题贴出来。刚才试了下面的程序:
#include <iostream>
class test
{
static char a[];
static int b[];
};
int main()
{
test t;
}
在msvs2010 &g++ 4.8.1。它在c++ 14编译器中也可以很好地编译。(点击这里查看现场演示。)那么,c++标准是怎么说的呢?如果我从测试类的char数组声明中删除静态关键字,当我在g++ &中使用-pedantic-errors
命令行选项时,编译器会给出一个错误ISO C++ forbids zero size array
;/Za
选项在MSVS 2010编译器它说error C2133: 'test::a' : unknown size
。所以,我的问题是:
1)未知大小静态数组的用途是什么?
2)我以后如何指定它们的大小&访问数组元素?我真的很困惑。
3)为什么删除static关键字会导致编译错误?
如果有人能用简单的例子来解释就更好了。
谢谢。
编译器不关心大小。它只是静态字段的声明,告诉它你有一个数组就足够了。在这一点上大小不重要。
在这一点上,你只有一个静态字段的声明。你永远不会使用这些数组,编译器是允许的…它不会抱怨的。 如果你想使用它们,你需要一个定义。如果您忽略了这里的大小,您将得到与前面看到的类似的错误消息。没什么特别的
相关文章:
- C++未知长度字符串的数组,其行为类似于 Python 字符串列表
- C++中数组大小未知的指针转换
- 如何定义在编译时数据未知的 const 数组
- 在C++中初始化第一维大小未知的二维数组
- 在带有模板的函数中传递未知大小的 std::数组.如何更正此代码?
- 你能让数组中的项数未知吗
- 当数组大小在C++中未知时,如何在运行时将对字符串数组的引用作为函数参数传递?
- 如何将输入到具有未知数量元素的数组中?
- 获取由空格分隔的未知大小的单行输入,并将其存储到整数数组中
- 使用 ReadProcessMemory() 将未知大小的字符数组或字符串读入 wstring 中
- 未知容器、向量或数组 c++ 的大小
- 未知大小的数组作为类成员,用于在运行时(对象创建时间)创建数组的对象
- 构造函数初始化器列表中未知长度的数组
- 在 c++ 中使用未知元素初始化的字符数组
- 特征:将数组映射到矩阵大小未知的矩阵
- 如何声明一个未知大小的数组,然后输入直到我想要,然后获取数组的大小
- 如何在 C++ 中将值附加到未知大小的数组中
- 如何确定未知类型数组的索引是否为空
- 使用数组和布尔值在输出未知时从输出中删除逗号
- C++传递指向未知大小的数组的指针,函数大小并填充它