尽量多使用const

C++中const非常多才多艺。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
一。const与指针、引用:

        pointer-to-nonconst可以初始化或赋值给pointer-to-const,反之不可以,只有一个例外:字符串字面值可以赋值给char* 类型指针;

        referece-to-nonconst可以初始化referece-to-const,反之则不可以。

二。const与一般函数重载:

         函数可以根据其引用型参数(指针和引用)引用或指向的类型是否为const进行重载,但不可以根据引用参数本身是否为const进行重载,也不可以根据函数的非引用类型参数是否为const进行重载。

         如:

         void func(char* p)和void func(const char* p) 重载;
         void func(char& p)和void func(const char& p)重载。

 

三。const与成员函数:

         成员函数声明式和定义式的后面加关键字const可将成员函数设为const类型,它不可修改类的数据成员(静态成员及mutable成员除外)。

         成员函数可以仅仅根据其是否为const类型进行重载。
         constt对象只能调用const成员函数。
         const对象:如果根据const类型重载了,调用const成员函数,如果没有重载,调用存在的那个。

 

四。替代#define宏:

         应该尽可能使用const替代#define宏。

 

五。专属类的const:

        const数据成员是专属类对象的,而不是类;

        static const数据成员是专属类的const。

       

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值