Кажется, это простая проблема, но я не могу понять, каково ее решение. У меня есть класс экрана, где объекты в основном имеют координаты x и y, цвет шрифта и т. Д. Все работает хорошо, я могу создавать экземпляры и использовать эти объекты.
Иногда мне нужно изменить цвет строки, которая записывается на экран. Это скорее «системный вызов», который после выполнения устанавливает все строки, записанные после этого. Поэтому каждый раз, когда я пишу на экран, я вынужден сначала «установить цвет текста». Или я? У меня есть метод, setValue:
objA->setValue("1234", RED);
Когда метод получит этот вызов, он установит цвет экрана записи. Допустим, objA просто установите цвет RED. Если другой объект должен записывать на экран, и он того же цвета, я не хочу снова записывать это на экран, чтобы уменьшить количество записей на экран. Итак, основываясь на цвете последнего объекта, я хочу обновить цвет текста на экране (или нет)
В Си это, конечно, будет самым злым статический глобальный. Как я могу сделать что-то подобное в C ++?
Спасибо…
Я не совсем уверен, что вы собираетесь здесь: I.E., Если объекты, которые вы используете, предназначены для представления экран или немного текст на экране. Я возьму на себя последнее.
Звучит так, будто вы просто хотите, чтобы место, где можно спрятать значение вашего цвета, для последующих вызовов, в которых не указано значение цвета. Вероятно, вам следует изучить статические члены класса. В самом простом случае у вас просто будет закрытый статический член класса вашего «цветового» типа, а ваша функция setValue () просто обновит эту переменную.
(Кстати, если я правильно читаю ваш вопрос, «setValue» действительно следует называть чем-то вроде «писать текст». Может быть, я неправильно истолковал это, хотя. Было бы также разумно разделить «set color» для вашего класса на Публичная статическая функция-член. Не вещь правильности, а вещь ясности.)
Других решений пока нет …