我对编码规则有一些限制,我正在寻找一种解决方案以使其正常工作。在.h文件中:
namespace myNamespace
{
class MyClass
{
protected:
MyArrayType myArray[10];
};
}
我有以下限制:
我必须在此类(在.h或.cpp中)的常量属性中声明10值,并通过构造函数“(...)”的调用对其进行初始化。
我必须按此可见性顺序声明此类的属性:public,protected,private。
我必须用C ++ 03编写代码
我试图做到这一点:
namespace myNamespace
{
class MyClass
{
protected:
static const int TEN(10);
MyArrayType myArray[TEN];
};
}
但是在
TEN
声明的行上出现以下编译错误:错误:数字常数之前的预期标识符
由于上面列出的第二个约束,因此在protected而不是private中定义
TEN
常量。任何可能的解决方案的想法吗?
谢谢。
最好的祝福。
最佳答案
问题出在类初始化器中,使用花括号({}
)代替括号(()
):
static const int TEN{10};
或
=
:static const int TEN = 10;