const的使用方法

在全局定义 const float PI=3.1415926

在类中定义

class A
{...
A(int size);
const int SIZE;
};
A::A(int size):SIZE(size)
{
...
}

对参数和函数的定义(const只能修饰输入参数,不能修饰输出参数)

const int x=1; 表示x的值是1,在程序中不能改变;

const int* x; 表示x代表的地址所指向的内容是不能改变得;

int const* x; 与const int* x;的表示的意思一样;

int * const x; 表示x代表的地址是不能改变的;

当是输入参数时,不需要是void Func(const int i),void Func(const int& i),可以是void Func(int i)

因为输入参数采用"值传递"(const int i),由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const修饰;

不用const int& i的原因在于内部数据类型的参数不存在构造、析构的过程,而复制也非常快,"值传递"和"引用传递"的效率几乎相当.

当是输入参数时,不需要是void Func(const A a),void Func(A a),可以是void Func(A& a)或void Func(const A& a)

不用const A a,A a的原因是函数的效率比较低,因为函数体内将产生A类型的临时对象用于复制参数a,而临时对象的构造、复制和析构过程都需要消耗时间

最好用const A&a的原因是A&a中的a可以被改变,A&a和const A&a的好处在于都不会产生临时对象,效率高;

const A Func(const A&a )const的好处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值