如何在类.h文件中使用静态常量来定义数组的长度?

时间:2018-01-24 10:47:45

标签: c++ arrays constants header-files

我有几个编码规则的限制,我正在寻找一个解决方案来使这项工作。在.h文件中:

namespace myNamespace
{
    class MyClass
    {
        protected:
            MyArrayType myArray[10];
    };
}

我有以下限制:

  • 我必须在这个类中的常量属性中声明10值(在.h或.cpp中),通过调用构造函数“(...)”来初始化。
  • 我必须在此可见性顺序中声明此类的属性:public,protected,private。
  • 我必须在C ++ 03中编码

我试图做到这一点:

namespace myNamespace
{
    class MyClass
    {
        protected:
            static const int TEN(10);
            MyArrayType myArray[TEN];
    };
}

但是我在TEN声明的行上有以下编译错误:

  

错误:数字常量之前的预期标识符

在protected而不是private中定义TEN常量是由于上面列出的第二个约束。

请问可能的解决方案吗?

谢谢。

最好的问候。

1 个答案:

答案 0 :(得分:4)

问题出在 in-class 初始化程序中,使用大括号{})而不是括号({{1 }}):

()

static const int TEN{10};

=