これは、次のような他のいくつかの質問に関連しています: this、および私の他のいくつかの質問。
この質問や他の質問では、文字列配列を宣言して初期化できることがわかります。たとえば、次のようになります。
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
}
};
しかし、コンパイラが不平を言い、その理由がわかりません。クラス定義のワンステップで、このような配列を宣言して初期化することは可能ですか? より良い代替手段はありますか?