使用值

时间:2015-06-08 19:15:55

标签: c++

我有一个完全静态的类。类内部是一个指向可变长度整数列表的指针。类中的函数依赖于在调用之前初始化为2的列表中的第一个值。有些函数也经常被调用,所以我不想在每个函数中首先设置该值。

以下是标题的示例:

class Foo{
public:
  static void f1();
private:
  static int* list;
}

和.cpp文件,全局(在其他函数调用之外):

int* Foo::list = new int[10];

我需要以某种方式初始化list [0] = 2,但不允许在与列表初始化程序相同的位置。

1 个答案:

答案 0 :(得分:1)

如果你的编译器支持C ++ 2011,那么写

int* Foo::list = new int[10] { 2 };

另一种方法是定义私有静态函数。例如

class Foo
{
// ...
private:
    static int *list;
    static int * init() 
    {
        int *p = new int[10];
        p[0] = 2;
        return p;
    }       
};

int* Foo::list = Foo::init();