我对编码规则有一些限制,我正在寻找一种解决方案以使其正常工作。在.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;

07-25 23:13