在类中定义IDD到底是什么

风飘水寒 2012-04-25 11:00:25
如下:

class Man
{
public:
enum {IDD = 5000};
};


class BMan : public Man
{
BMan()
{
IDD;
}
};

这个IDD到底是什么 ? 难道是Man类的成员变量?

一般MFC 基于对话框的程序中,对话框的类声明中也有这种 IDD = 模板ID号的
就是不明白这种语法,请问哪位大侠给解释下。
...全文
235 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
风飘水寒 2012-04-28
  • 打赏
  • 举报
回复
没人回贴了。先结了再说
风飘水寒 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
定义一个匿名的枚举的成员IDD.
值是5000.
然后,再这里面当做一个有名字的常量来用.
用IDD代替5000这个数字.
[/Quote]

为什么在C++类中定义的匿名枚举 功能等价于静态常成员变量?
qq120848369 2012-04-26
  • 打赏
  • 举报
回复
enum从来都是暴漏在名字空间里的,即便它长的像一个类,或者被花括号包了起来,也是如此,做程序员自己敲代码去尝试,去琢磨,相信编译器即可。
mosal 2012-04-26
  • 打赏
  • 举报
回复
不算完全等价吧。“in—class初值设定”只允许对整数常量进行。如果当你在class编译期间需要一个class常量值,例如某个数值作为一个成员数组的大小(编译器是坚持在编译期间就要知道数组大小的)这时候如果你的编译器不允许static整数型class常量完成“in-class 初值设定”,可用enum:一个属于枚举类型的数值可权充int被使用。[Quote=引用 4 楼 的回复:]

引用 3 楼 的回复:
定义一个匿名的枚举的成员IDD.
值是5000.
然后,再这里面当做一个有名字的常量来用.
用IDD代替5000这个数字.


为什么在C++类中定义的匿名枚举 功能等价于静态常成员变量?
[/Quote]
evencoming 2012-04-25
  • 打赏
  • 举报
回复
定义一个匿名的枚举的成员IDD.
值是5000.
然后,再这里面当做一个有名字的常量来用.
用IDD代替5000这个数字.
bsnry 2012-04-25
  • 打赏
  • 举报
回复
不是变量!!!

表示一个整数。

zhuojohn 2012-04-25
  • 打赏
  • 举报
回复
IDD 是资源:如图标 位图 对话框的ID

64,637

社区成员

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

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