C ++:类中的静态数组,大小未知

时间:2015-08-16 06:47:07

标签: c++ arrays static-members data-members

我对此并不熟悉。我在谷歌搜索它但没有找到我的答案。所以,发布我的问题。 刚试过以下程序:

#include <iostream>
class test
{
    static char a[];
    static int b[];
};
int main()
{
    test t;
}

它在MSVS 2010上没有任何警告就编好了。 g ++ 4.8.1。它在C ++ 14编译器中编译也很好。 (参见现场演示here.)那么,C ++标准在哪里说到这一点?如果我从测试类中的char数组的声明中删除static关键字,当我在g ++&amp;中使用ISO C++ forbids zero size array命令行选项时,编译器会给出错误-pedantic-errors。 MSVS 2010编译器中的/Za选项显示为error C2133: 'test::a' : unknown size。所以,我的问题是:

1)使用未知大小的静态数组有什么用?

2)我以后如何指定它们的大小&amp;访问那个数组元素?我真的很困惑。

3)为什么删除静态关键字会导致编译错误?

如果有人用简单的例子解释它会更好。

感谢。

0 个答案:

没有答案