2016-11-04 53 views
1

我想在我的類中有一個const std :: map,並且我希望它在其他實例中重用此數據結構時是靜態的。不幸的是,它不會編譯和我在CPP底漆發現是:在類定義中初始化靜態常量成員映射<>

但是,我們可以提供一流初始化爲有常量整數類型,且必須爲靜態成員 是constexprs這樣做靜態成員字面類型(Primer 5th)。

我的代碼看起來像:

clase worker { 
//..... 
private : 
//..... 
static map<string, string> const map_{...}; 
} 

那麼,有沒有一個面嚮對象的技術,再利用這種數據結構,假設我們有工人的幾十map_大?

回答

2

看來你只是與類成員相關的片C++語法的陌生:

class worker 
{ 
private: 
    static const std::map<std::string, std::string> m_; 
}; 

const std::map<std::string, std::string> worker::m_ = { 
    { "foo", "bar" }, 
    { "abc", "def" }, 
}; 

的成員定義通常生活在一個單獨的.cpp文件,以便其包含翻譯單元僅出現一次鏈接。

相關問題