0
この型を定義したクラスmyClass
は、この型を使用するmyType
およびstatic const std::map
です。メンバーをどのように初期化する必要がありますか?クラス内部の静的型の内部型
このような状況です。コンパイラは私に:multiple definition of MyClass::myMap
と伝えます。しかし、実際には1つの定義しかありません。この初期化は(模式的に)正しいですか?
class myClass
{
struct myType
{
// ...
};
static const std::map<int, myType> myMap;
};
const std::map<int, myType> myClass::myMap = {
{1, {"hello myType", 99, "woops"}},
{2, {"hello again", 66, "holla"}},
{3, {"and bye", 33, "adios"}}
};
提案問題のconst
メンバーが静的ではありませんので、それは重複しません。
また、この質問:static const
メンバーがint
年代なのでInitializing private static members が質問に答えていません。
あなたは '忘れてしまった;'構造体 –
。それは本当に、 'のconst MyClassの::のstd ::マップ myMap'なく'のconstのstd ::マップのMyClass :: myMap'された後? 'myClass :: std :: map'がないので、最初のものはコンパイルすべきではありません。 –
immibis
私はそれらを両方とも修正しました。それは私のコードには存在しませんでした。 – dani