zoukankan      html  css  js  c++  java
  • 条款二 尽量使用const,enum,inline替换#define

    1.#define定义的变量预处理时没有加入记号表中,若出现错误时很难找到出错之处
    2.使用#define定义的变量尽量使用const代替,#define A 3可以使用const int A=3代替
    3.在类里使用static定义const常量,确保至多只有一个const常量
    4.设计一个类

    class Test
    {
    private:
    static const int num = 5;
    int str[num];
    }

    如果编译器不支持num这样声明的时候初始化,则可以使用enum {num = 5};
    如果不支持num那样初始化,则可以在实现文件中,const int Test::num = 5;这样就OK了
    5.使用enum定义的常量还可以禁止指针或引用使用,起到对enum常量的约束作用
    6.使用#define定义函数宏时,可以消除调用函数的开销,但缺乏安全性,可以使用inline定义函数
    7.使用inline定义的函数

    template<class T>
    inline int Max(const T& a,const T& b)
    {
    return (a > b ? a : b);
    }

       (1)使用到模板;(2)使用inline定义;(3)使用了引用参数

  • 相关阅读:
    分页存储过程
    调存储过程
    winform httplicent调用API
    存储过程,触发器,等等。。。
    C# AJAXform上传图片
    Mysql order by与limit联用出现的问题
    将Sublime Text 3 放到右键中
    Vue-cli构建步骤
    Javascript面试知识点
    position详解
  • 原文地址:https://www.cnblogs.com/bizhu/p/2594437.html
Copyright © 2011-2022 走看看