中易网

C++ 为什么把类定义成宏使用

答案:3  悬赏:50  
解决时间 2021-02-22 21:21
为什么把类定义成宏使用?定义成宏使用的目的是什么,有什么好处,一般应用在什么地方(比如接口)?

类似如下的定义(简单举个例子)

#define DEFOBJLIST(c) \
class c : public List {\
...\
...\
}
最佳答案
这里看宏的名字和定义,可以猜测这个宏是用于为每种对象类型提供一种容器,类似于我们现在标准库中出现的一些模板类。我猜测这么定义只是因为当时没有出现支持模板的编译器,而是用宏来模拟模板机制。所以现在不推荐这种使用宏的方法。

宏常见的用法包括条件编译,生成代码等。
全部回答
单例模式中。经常会用到。好处是简化代码。 再看看别人怎么说的。
要看写代码的人的目的,由于宏定义可以通过其他宏定义来改变。例如 vs里面就会在debug情况下多定义一个__DEBUG的宏,那么设计者即可以通过 #ifdef __DEBUG #define DEFOBJLIST(c) \ class c : public List {\ ...\ ...\ } #else #define DEFOBJLIST(c) \ class c : public List2 {\ ...\ ...\ } #endif 这样的目的区分出来。那么在List类里面加入各种调试信息(例如cout出各种变量)来达到调试效果。而在release下用List2的类则不加入这些会影响效果的调试信息。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
奶茶MM胸围多少啊?
全世界零售商的前三十名的排名
问:脑核磁共振报告显示“双侧额叶皮层下可见
连云港林咖机械有限公司在什么地方啊,我要过
桃花源记单练玩什么职业好
奥科照明怎么去啊,有知道地址的么
有没有更好的方法把一个手机上的号码倒到另一
多少KB/s算快??
泉州鲤城区洋仕村什么时候会拆迁
电动车废电池回收价格?
请VB高手帮忙看看哪里出错,为什么就是不会显
唐集中心学校在什么地方啊,我要过去处理事情
硫粉和水在加热条件下能反应吗?
秩序之战天玄晶怎么得到
把“告发我的就是那位把表还给我的黑大哥。”
推荐资讯
tk2153彩电自动 关机,指示灯由绿变红灯
丰乐农贸市场在哪里啊,我有事要去这个地方
常熟市尚湖镇五丰五金置物架厂地址有知道的么
天蓬融信和大连鹏升是什么关系?
现在笔记本电脑的硬盘主流是多大的,存储量重
上海音乐厅精心打造“五一”晚会,奉献给观众
歌词虽然我不是大美女的歌名叫什么男女和唱的
京城大酒店-洗浴在什么地方啊,我要过去处理
夏日炎炎作文40O字
通达信软件怎么能快速选出一只创新底的股票后
w7中我的文档名字怎么更改,
盈登酒楼在哪里啊,我有事要去这个地方
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?