Как инициализировать статический указатель const в классе? - PullRequest
2 голосов
/ 07 декабря 2009
class School
{
    static const int *classcapacity; 
};

Это выражение из моего экзамена, и его нужно инициализировать, как я могу это сделать?

Ответы [ 4 ]

8 голосов
/ 07 декабря 2009

Вы можете инициализировать его в исходном файле, вне тела класса, так же, как и в любой другой статической переменной-члене, т.е.

const int* School::classCapacity(new int(42));
2 голосов
/ 07 декабря 2009

Если вы хотите инициализировать его с YOUR_INITIALIZER:

class School{ static const int *classcapacity ; } ;
const int* School::classcapacity = YOUR_INITIALIZER;
2 голосов
/ 07 декабря 2009

Вероятно, так:

class School{
  static const int *classcapacity   ;
};
const int *School::classcapacity = 0;
0 голосов
/ 24 февраля 2014

Я знаю, что это старый, но в C ++ 11 вы бы написали:

class School
{
   static const int* classcapacity{new int[4]}; // initialize with 4-element array
};
...