Это связано с некоторыми другими вопросами, такими как: этот и некоторые другие мои вопросы.
В этом и других вопросах мы видим, что можем объявить и инициализировать строковые массивы за один приятный шаг, например:
const char* const list[] = {"zip", "zam", "bam"}; //from other question
Это можно сделать в реализации функции без каких-либо проблем или в теле файла .cpp вне какой-либо области видимости.
То, что я хочу сделать, это иметь такой массив, как член класса, который я использую, что-то вроде этого:
class DataProvider : public SomethingElse
{
const char* const mStringData[] = {"Name1", "Name2", "Name3", ... "NameX"};
public:
DataProvider();
~DataProvider();
char* GetData()
{
int index = GetCurrentIndex(); //work out the index based on some other data
return mStringData[index]; //error checking and what have you omitted
}
};
Но компилятор жалуется, и я не могу понять, почему. Можно ли объявить и инициализировать такой массив за один шаг в определении класса? Есть ли альтернативы, которые лучше?