【发布时间】:2011-04-01 14:47:14
【问题描述】:
我是 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 GUI 显示/隐藏小部件。
不幸的是,上面的宏似乎不起作用,而是它的作用是
button_i->hide();
由于 button_i 不存在而导致编译错误!
所以我的问题是:
A) 是否可以在 C++ 中执行此操作?
B) 宏能做到这一点吗?
C) 如果不能,那还能做什么?
D)如果宏可以做到这一点,那么我该如何修改上面的代码才能真正让它工作!
谢谢
【问题讨论】: