Форум программистов, компьютерный форум CyberForum.ru

Инкапсуляция строк - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При помощи цикла показать на экран календарь текущего месяца http://www.cyberforum.ru/cpp-beginners/thread1091861.html
При помощи цикла показать на экран календарь текущего месяца.
C++ Нажатие клавиши без ожидания Enter Как в c++ сделать так, что бы при нажатии какой-то клавиши, программа(консоль) сразу выполняла действие , а не ждала пока введут этот символ. Например if (c == "d") cout << "-"; только что бы прога не ждала нажатие enter, и не писала на экране букву d. Хочу типо консоль-змейки написать ??? http://www.cyberforum.ru/cpp-beginners/thread1091860.html
C++ Переопредения нуля для структуры (класса)
Пишу клас дробей вида (sqrt(f)+n)/d. Нужно проверять равна ли такая дробь нулю, тоесть (f==0&&n==0) но так писать каждый раз не удобно, и нет прямого доступа к полям переменных (frac.f, frac.n, frac.d). Можно как-то переопределить ноль для класса, или оператор "==", "!=" чтоб можно было записать так frac x; ........ if (x==0) ....
При помощи цикла показать на экран календарь текущего месяца. C++
При помощи цикла показать на экран календарь текущего месяца.
C++ Написать программу, которая выводит на экран полый прямоугольник, ширина и высота фигуры задаются пользователем с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread1091832.html
Написать программу, которая выводит на экран полый прямоугольник, ширина и высота фигуры задаются пользователем с клавиатуры.
C++ Помогите обнаружить ошибку в программе! Помогите пожалуйста ! Вот код, не компилится, вылетает ошибка ! #include <iostream> //позволяет программе выводить данные на экран using std::cout; using std::endl; class GradeBook; { public: подробнее

Показать сообщение отдельно
valval
1 / 1 / 0
Регистрация: 29.01.2014
Сообщений: 30
08.02.2014, 06:47     Инкапсуляция строк
Приветствую!
Как сделать инкапсуляцию строк?
Например:
Допустим, для целых чисел можно использовать:
C++
1
2
3
4
5
6
enum class Colors
{
    RED = 0,
    GREEN = 12,
    BLUE = 23,
};
Данные собраны в одном месте и гарантированно инициализированы.
Дальше не нужно заморачиваться с созданием "магических чисел", а напрямую вызвать например Colors::GREEN.
Но как быть со строками в таком случаи? В класс-перечисление строки не загнать. Как казалось бы вариант, можно сделать ассоциативный контейнер с ключом Colors и элементом std::string.
C++
1
2
3
std::map<Colors, std::string> ColorStrings;
ColorStrings[Colors::RED] = "Red color";
ColorStrings[Colors::BLUE] = "Blue color";
После получать элемент string по ColorStrings[Colors::BLUE]. Но нет же гарантии, что ключ Colors::BLUE находится в этом контейнере. А проверять каждый раз на наличие - вовсе не вариант.

Итак, какой можно найти выход в данной ситуации?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru