尽量以const,enum,inline代替#define——effective c++学习笔记

const:

通俗的讲,就是一编译器代替预处理器。

class的专属常量,且只有一份拷贝,需要在类内定义:

static const int i = 0;

这样不会提示出错。如果定义为static int i = 0 ;则编译器会提示:“错误:ISO C++ 不允许在类内初始化非常量静态成员

enum:

typedef enum Type

{

One,

Two,

Three,

};

Type T = One;

对于上面的定义,OneTwoThree是不占内存空间的,只有T才占内存空间。

One只是一个编译器的标号

int v[One];正确;

int v[T];错误;

对于单纯常量,最好以const对象或者enums替换#define

对于形似函数的宏,最好改用inline函数替换#inline

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值