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

  • 相关阅读:
    判断ip是内网还是外网, 判断请求来之pc还是mobile
    CentOS6.5(Kernel2.6) Compile PHP5.6
    java设计模式笔记
    Java定时quartz(spring)
    Transforming beans, maps, collections, java arrays and XML to JSON
    java socket通讯交互
    第一个WebService CXF的搭建
    java技术成长之路
    struts2中文乱码
    sql server分页(摘)
  • 原文地址:https://www.cnblogs.com/findumars/p/6359753.html
Copyright © 2011-2022 走看看