поэтому я объявляю структуру для реализации печати текста:
Код: Выделить всё
struct Text{
COORD pos;
int color;
string text;
void redraw(){
...
}
}
Код: Выделить всё
Tip.color = 3; Tip.redraw();
Этот фрагмент кода повсюду в моей программе и выглядит глупо.
Есть ли способ неявно вызвать функцию redraw(), пока я назначаю переменную структуры?
(например, используйте только Tip.color = 3; можно перерисовать текст в консоли в цвете 3)
Думаю, макрос может решить эту проблему, но я не знаю, как это реализовать.
В настоящее время я попробовал определить Set_color();Set_pos(),Set_text()соответственно в структуре Text;
Я пытался объявить новый тип pos,color,textв структуре Text и перегрузить оператор присваивания, но я не могу устранить ошибку вызова redraw() во время перегрузки:
Код: Выделить всё
struct Text {
struct pos{
int x, y;
void operator = (const pos & Temp){
this->x = Temp.x;
this->y = Temp.y;
redraw();
}
};
void redraw(){
//draw the text in the terminal
}
};
Подробнее здесь: https://stackoverflow.com/questions/786 ... structs-op