class Try {
const int no = 5;
int arr[no];
};
这是一个简单的类,但出现此编译错误。 no
是常量,因此我认为应该不是问题。
答案 0 :(得分:12)
arr
在类的所有实例中必须具有相同的大小。 no
是const,但这仅表示在创建实例后它永远不会更改。 不是并不意味着对于所有实例而言,它始终都是相同的。例如,可以在构造函数的初始化列表中设置no
Foo::Foo(int size) : no(size)
{}
因此,除非将no
设置为静态,否则不能将其用作数组大小,因为这将暗示每个实例中数组的大小可能不同。