Контейнер для хранения свойств в C++

Пример реализации контейнера для хранения конфигурационных данных программы на C++. По принципу схож с хешами в Perl.

class PropertiesContainer
{
 public:
 int GetProperty (std::string const& name)
 {
 return m_map[name];
 }
 void SetProperty (std::string const& name, int value)
 {
 m_map[name] = value;
 }
 bool HasProperty (std::string const& name)
 {
 return m_map.find(name) != m_map.end();
 }

 private:
 std::map<std::string, int> m_map;
};

Использовать так:

int main ()
{
 PropertiesContainer obj;
 obj.SetProperty ("property_1", 5);
 obj.SetProperty ("property_2", 11);
 obj.SetProperty ("property_3", 12);
 obj.SetProperty ("property_4", 17);
 std::cout << obj.GetProperty ("property_1") << ", "
 << obj.GetProperty ("property_2") << ", "
 << obj.GetProperty ("property_3") << ", "
 << obj.GetProperty ("property_4") << ". ";
}

Поблагодарить автора

One Response to Контейнер для хранения свойств в C++

  1. Ну словарь (aka map) ведь вовсе не обязательно в класс оборачивать. Единственный полезный метод, пожалуй,— HasProperty (), т.к. сильно сократит код для проверки. Но его можно в отдельную функцию тогда запихнуть, а не класс городить.

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>