#define 问题

巨巨 2010-08-12 09:08:29
#define DefineIdentity(name, sname, id) \
virtual const char * className() const {return name;} \
virtual const char * classShortName() const {return sname;} \
virtual int classID() const {return id;}

这句话什么意思?
...全文
154 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hdzh 2010-08-12
  • 打赏
  • 举报
回复
好好学习了
huayiluo 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jh2005 的回复:]

在基类中定义了这个,然后在派生类中进行了定义。
DefineIdentity("ClassA", "AClass", 200);
[/Quote]
可以给个详细点的例子吗?
巨巨 2010-08-12
  • 打赏
  • 举报
回复
在基类中定义了这个,然后在派生类中进行了定义。
DefineIdentity("ClassA", "AClass", 200);
huayiluo 2010-08-12
  • 打赏
  • 举报
回复
请问怎么调用呢。这种情况实际应用在哪里?
huayiluo 2010-08-12
  • 打赏
  • 举报
回复
学习了。
shanno 2010-08-12
  • 打赏
  • 举报
回复
用反斜杠可将多行换写为多行
sky198306 2010-08-12
  • 打赏
  • 举报
回复
\ 这个属于 Define的一个特殊用途
zou_cplus 2010-08-12
  • 打赏
  • 举报
回复
DefineIdentity(name, sname, id)

相当于name, sname, id 这3个是如果是 DefineIdentity("a","b",10)

virtual const char * className() const {
return name;
}
返回值 为 a
virtual const char * classShortName() const {
return sname;
}
返回值为 b
virtual int classID() const {
return id;
}
返回值 为 10
昵称很不好取 2010-08-12
  • 打赏
  • 举报
回复
\是分行的意思,定义了三个虚函数
jackyjkchen 2010-08-12
  • 打赏
  • 举报
回复
简单替换 输入DefineIdentity相当于输入下面的全部
toplinq 2010-08-12
  • 打赏
  • 举报
回复
看得懂是什么意思,可是真不理解为什么要这样写。
in_sh 2010-08-12
  • 打赏
  • 举报
回复
#define OK(log) cout<<log<<"n";

int main()
{
OK(10)

return 0;
}
in_sh 2010-08-12
  • 打赏
  • 举报
回复
#define OK 10

int main()
{
cout<<OK;

return 0;
}

出来10。 你吧10改成11,出来就是11了。 就是OK代替了后面10了。 10可以变动。
zixingamber 2010-08-12
  • 打赏
  • 举报
回复
学习了
独酌逸醉 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 huayiluo 的回复:]
引用 8 楼 jh2005 的回复:

在基类中定义了这个,然后在派生类中进行了定义。
DefineIdentity("ClassA", "AClass", 200);

可以给个详细点的例子吗?
[/Quote]
MFC中,这种情况太多了。

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧