2016-06-27 7 views
-1

Это, кажется, простая проблема, но я не могу понять, что такое решение. У меня есть экранный класс, где объекты суть координаты x и y, цвет шрифта и т. Д. Все работает хорошо, я могу создавать и использовать эти объекты.Видимость измененных объектов объекта

Иногда мне нужно изменить цвет строки, которая записывается на экран. Это скорее «системный вызов», который когда-то был выполнен, устанавливает все строки, написанные после этого. Поэтому каждый раз, когда я пишу на экран, я вынужден сначала «установить цвет текста». Или я? У меня есть метод: setValue: objA->setValue("1234", RED);

Когда метод получит этот вызов, он установит цвет записи на экране. Предположим, что objA просто установил цвет RED. Если другой объект должен быть записан на экран, и он будет одного цвета, я не хочу снова писать это на экран, чтобы уменьшить количество записей на экране. Итак, на основе цвета последнего объекта, я хочу обновить цвет текста экрана (или нет) В C это, конечно, было бы самым злым статическим глобальным. Как я могу сделать что-то подобное в C++?

Спасибо ...

+0

Привет, Спасибо, что ответили! «setValue» - это перегруженная функция, которая может либо задавать определенный графический объект, либо устанавливать текст в местоположение x, y. Ваше предложение о статической переменной класса работает отлично. Еще раз спасибо! – user10326

+0

На самом деле, поскольку я не могу динамически выделять память (используя mem model 2 в FreeRTOS), я использую «новое» для создания объектов, которые должны освобождать необходимость создавать их как статические. Объявление переменной как конфиденциальной, установка/тестирование она работает хорошо. – user10326

+0

Добро пожаловать в переполнение стека! Я отредактировал ваш вопрос, чтобы отформатировать образец встроенного кода, чтобы он корректно отображался. Дополнительную информацию о форматировании см. В справке по редактированию. Пожалуйста, отредактируйте, чтобы предоставить дополнительную информацию, необходимую для определения конкретной проблемы. Удачи! – Wtower

ответ

0

Я не совсем уверен, что вы собираетесь здесь: IE, если объекты, которые вы используете предназначены для представления экрана или немного текста в пределах экрана. Я возьму последний.

Похоже, вы просто хотите, чтобы место, где можно было выбросить ваше значение цвета, для последующих вызовов, которые не указывают значение цвета. Вероятно, вам следует изучить статические элементы класса. В наиболее простодушном случае у вас будет просто частный член статического класса вашего типа «цвет», и ваша функция «setValue()» просто обновит эту переменную.

(BTW, Если я правильно читаю ваш вопрос, «setValue» действительно следует называть чем-то вроде «писать текст». Может быть, я неверно истолковал. Было бы также разумно отделить «установленный цвет» для ваш класс в публичную статическую функцию-член. Неправильность, просто ясность.)

+0

Я не уверен, что вообще понадобится 'static'. –

+0

Да, это зависит от того, является ли вызов для каждого экрана или каждого объекта на экране; статика была бы необходима, если> 1 объект на экран, так как он был бы общим. Если это всего лишь «экранный» объект, тогда цвет будет просто обычным старым членом. –