Я неуверен в std :: map на c ++:
Я сделал объект C_Configuration
, который загружает связанную библиотеку (.so) C_ConfigurationLibrary
.
Класс C_Configuration
имеет std::map
, а The C_ConfigurationLibrary
имеет метод, который инициализирует std::map
.
Если я получу доступ к std::map
из C_Configuration
с помощью цикла for:
std::map<const char*, const char*>::iterator l_item;
for(l_item = m_configuration_map.begin();
l_item != m_configuration.end();
l_item++)
Это нормально;
Но если я использую:
m_configuration[VALUE_KEY] // the value is NULL
Это не нормально;
Мой КОД:
C_Configuration::C_Configuration()
{
m_configuration = LoadLibrary(); // load the linked library (.so)
if(m_configuration != NULL)
{
// DEBUG
LOG_DEBUG("Loading Key from plugin...");
m_configuration->LoadKeys(m_configuration_map);
std::map <const char*, const char*>::iterator l_item;
for ( l_item = l_configuration_map.begin();
l_item != l_configuration_map.end();
l_item++ )
{
//THIS IS OK
}
m_configuration_map[FIRST_KEY] // THIS IS NOT OK
}
}
void C_ConfigLibrary::LoadKeys(std::map<const char*, const char*>& p_configuration_map)
{
// DEBUG
LOG_DEBUG("Loading Keys...");
p_configuration_map.insert ( std::make_pair<const char*, const char*>(FIRST_KEY, FIRST_VALUE) );
// DEBUG
LOG_DEBUG("Loaded Key DBUS used: %s",m_dbus_used.c_str());
p_configuration_map.insert ( std::make_pair<const char*, const char*>(SECOND_KEY,SECOND_VALUE) );
}
Вы можете мне помочь?
Большое спасибо