首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在类中定义IDD到底是什么解决方案

2012-05-01 
在类中定义IDD到底是什么如下:class Man{public:enum {IDD 5000}}class BMan : public Man{BMan(){IDD

在类中定义IDD到底是什么
如下:

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


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

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

一般MFC 基于对话框的程序中,对话框的类声明中也有这种 IDD = 模板ID号的
就是不明白这种语法,请问哪位大侠给解释下。

[解决办法]
定义一个匿名的枚举的成员IDD.
值是5000.
然后,再这里面当做一个有名字的常量来用.
用IDD代替5000这个数字.
[解决办法]
不算完全等价吧。“in—class初值设定”只允许对整数常量进行。如果当你在class编译期间需要一个class常量值,例如某个数值作为一个成员数组的大小(编译器是坚持在编译期间就要知道数组大小的)这时候如果你的编译器不允许static整数型class常量完成“in-class 初值设定”,可用enum:一个属于枚举类型的数值可权充int被使用。

探讨

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


为什么在C++类中定义的匿名枚举 功能等价于静态常成员变量?

[解决办法]
enum从来都是暴漏在名字空间里的,即便它长的像一个类,或者被花括号包了起来,也是如此,做程序员自己敲代码去尝试,去琢磨,相信编译器即可。

热点排行