zoukankan      html  css  js  c++  java
  • qt的demo中,经常可以看到emum

         最近开始看QT的文档,发现了很多好东西,至少对于我来说 收获很多~~~

          当然很多东西自己还不能理解的很透彻,也是和朋友讨论以后才渐渐清晰的,可能对于QT中一些经典的用意我还是存在会有些认识上的偏差,欢迎大家指正~~~

          qt的demo中,经常可以看到

      

    [cpp] view plain copy
     
    1. enum { Type = UserType + 2 };  
    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

  • 相关阅读:
    linux定时任务crontab介绍
    kafka跨集群同步方案
    hadoop配置参数速查大全
    kafka生产者消费者示例代码
    storysnail的Linux串口编程笔记
    storysnail的Windows串口编程笔记
    botbrew下写glib2程序
    codeblocks配置GLUT
    使用Code::blocks在windows下写网络程序
    使用pango-Cairo列出系统中的有效字体
  • 原文地址:https://www.cnblogs.com/findumars/p/6359753.html
Copyright © 2011-2022 走看看