C++改善程序设计的55个做法笔记

  • 尽量使用const,enum,inline,减少define的使用
    • define是预编译指令,预编译时直接替换为对应的值,不做合法性检查。其他都是编译环境做处理,会对合法性进行检查
    • define不能引用,和enum一样,但是const可以用于地址或者引用
    • 声明一个const指针常量方式const char* const p = "hello",包含指针常量和data常量
    • 声明类const成员常量
      class Gamer {
      	private:
      		static const int numbers = 10;
      		...
      }
      class Gamer {
      	private:
      		static const int number;
      }
      const int Gamer::number = 10;
      
      这两种方法等效的,声明的时候定义,以及声明 定义分开,如果想直接使用,则需要使用enum
      Class Gamer {
      	private:
      		enum { number = 10};
      		int score[number];
      		..
      }
      ···
      第三种方法不可以取地址和引用,而且声明的时候可以直接使用
      
    • 宏定义类似方法
      #define MAX(a,b) f((a) > (b) ? (a) : (b))
      MAX(++a, b) 如果a>b, 则a会自加两次,如果b>a,则会加1
      换成inline之后,就可以解决这个问题
      template<typename& T>
      inline void max(T a, T b) {
      	f(a > b? a:b);
      }
      
  • 尽可能使用const
    • const和指针组合的规则:const出现在号左侧,是data常量,如果在右侧,则指针是常量,如果在两侧,则指针和data都是常量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值