Я новичок в C ++ и никогда раньше не использовал макросы, но я полагаю, что они могут позволить мне решить следующую проблему, хотя я бы приветствовал альтернативные решения.
Я написал следующий макрос:
#define COMMAND(NUMBER){ button_ ## NUMBER ## ->hide(); }
и я хочу назвать это так
for (int i = 1; i < 10; i++)
{
COMMAND(i)
}
в надежде, что при выполнении программы она будет эквивалентна:
button_1->hide();
button_2->hide();
button_3->hide();
button_4->hide();
.
.
button_10->hide();
Идея состоит в том, чтоЯ хочу, чтобы графический интерфейс FLTK отображал / скрывал виджеты динамически в зависимости от файла конфигурации, считываемого при загрузке формы.
К сожалению, похоже, что приведенный выше макрос не работает и вместо этого
button_i->hide();
, который вызывает ошибку компиляции, потому что button_i не существует!
Итак, мои вопросы:
A) Возможно ли это сделать в C ++?
B)Может ли макрос сделать это?
C) Если нет, то что может?
D) Если макросы могут это сделать, то как мне изменить вышеприведенный код, чтобы он действительно заработал!
Спасибо