0

こんにちは、約 500 個の文字列の配列があります。私のクラスの複数の関数がこの変数を使用しています。プログラム全体でその配列を複数回初期化したくないことは明らかです。一度初期化してクラス全体で使用できる最も効率的な方法は何ですか?

これが私が意味することの例です:

SomeClass.h:

class SomeClass {
   public:
        static const std::string large_list[];
   private:
        void someFunc();
        void someFunc2();
        void someFunc3();
}

SomeClass.cpp:

void SomeClass::someFunc1(){
        static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
        //do something with the large_list
   }

    void SomeClass::someFunc2(){
        static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
        //do something with the large_list
   }

    void SomeClass::someFunc3(){
        static std::string large_list[] = {"something", "somethingelse", "somethingelse1"...};
        //do something with the large_list
   }

ありがとう。

4

1 に答える 1

1

std::string次のクラス内初期化を使用できます (コンストラクターが not であるため、使用しなかったことに注意してくださいconstexpr)。

class SomeClass {
   public:
        static constexpr const char* large_list[] = {"something", "somethingelse", "somethingelse1"};
};
于 2013-05-24T03:01:09.893 に答える