编码笔记,常量,const和#define

常量:

程序中直接出现的数字与字符串会带来那些麻烦?
1、程序可读性变差,程序员与用户均难以直接理解数字和字符的含义,来源;
2、程序很多地方需要输入相同的字符串时,难以保证不出错,代码体量较大时,则会变成“必然出错”。
3、当数字与字符串需要被修改时则需要同时在很多地方修改,难以维护,出错频繁。

常量的定义方法:#define和const
相互比较:const优与#define

原因:
1、const有数据类型,可被编译器进行类型安全检查并在其作为参数时提高安全性;宏常量只是字符替换,隐患明显。
2、调试工具可以对const常量进行调试而无法对宏常量进行调试。

建议:
1、c++中使用const完全替代宏常量。

定义常量的规则
1、需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部,为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中。
2、如果某一常量和其他常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值,名称全大写。
如:const float RADIUS = 100;
const float DIAMETER = RADIUS * 2;

类中的常量
类中常量同样可以用const实现,而其作用是:在某个类的对象中保持为常量,而因类具体对象初始化的不同而在对象之间不同。
同时注意类中的const常量只能在初始化列表中进行初始化,不可在类数据声明时初始化,否则编译器会报错。
如:
class Test
{
public:
Test():VALUE(10)
{
}
private:
const int VALUE;
}

建立在整个类中恒定的常量:枚举常量
class Test
{
public:

private:
enum
{
SIZE1 = 100,
SIZE2 = 200
}

int iarrValue[SIZE1];
int iarrValue[SIZE2];
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值