最近开始看QT的文档,发现了很多好东西,至少对于我来说 收获很多~~~
当然很多东西自己还不能理解的很透彻,也是和朋友讨论以后才渐渐清晰的,可能对于QT中一些经典的用意我还是存在会有些认识上的偏差,欢迎大家指正~~~
qt的demo中,经常可以看到
- enum { Type = UserType + 2 };
- int type() const { return Type; }
对于这样的写法,最初的时候我是百思不得其解~~~问了朋友才是恍然大悟~~他的作用就相当于C++中的宏 #define
的作用了。
这样的好处是,代码应该干净易懂,没有了C++中一连串的宏定义了。 代码分析:
enum { Type = UserType + 2 };只是一个枚举类型的定义,Type的值在编译时就会替换return Type中的Type。也就是 enum { Type = UserType + 2 };不会占内存的空间。
另一方面,int type() const是一个成员函数,对于类的实例来时是共享的,这一方面的作用也是减少了内存的使用(这是相比于 直接定义int Type=129而言,因为类的所在内存大小就是所有成员变量之和,它的实例也是。当这个类有大量的对象的时候,使用上面的做法可以节省很多的内存空间)
http://blog.csdn.net/qustdong/article/details/6099395