我想在不实例化readFromMap
的情况下呼叫HelperClass
。
所以我想检查是否可以在类加载时调用readIntoMapFromDataStore
?
因此,始终在调用readFromMap
之前初始化该映射吗?
初始化静态地图
class HelperClass {
static map<string, string> cache;
static string readFromMap(string key) {
return cache.at(key);
}
static void readIntoMapFromDataStore() {
//read contents into cache from datastore
}
}
如何在调用readFromMap
之前进行初始化?
答案 0 :(得分:0)
应该通过返回地图对象的函数来完成地图填充,NRVO将消除临时对象。您可以通过使用静态成员定义中的初始化来连接它:
std::map<std::string, std::string> HelperClass::cache{HelperClass::readIntoMapFromDataStore()};