C++ const关键词

const可以看做是弥补#define的不足而出现的。显然它的功能已经大大超过了#define。

const可使用与变量与函数还有指针,引用,其实质都是一样“使不改变”。

const用于变量与对象:

const int test = 1;//用于普通变量,相当于#define test 1
            //这样,test就是常量了,并且与#define相比,它可以参加逻辑运算。

//用于类对象 class A { public: int num; }; int main() { const A testA; testA.num = 1;//报错,const对象不能修改 return 0; }

const用于函数:

class A
{
  int num;
  int add(int elem) const;
};

int A::add(int elem) const
{
  elem++;
  return elem;
}

上面代码编译会报错,因为用const修饰的函数修改了成员数据。

 const用于指针,引用:

 

//普通的引用与指针传递,可以修改传入的数据
void testf(string &a);
void testg(string *a);

//我们知道传递引用和指针可以用来修该数据,但是某些时候,我们并不希望程序修改源数据,同时,值传递花费太大。这时,我们可以使用const传递

//const引用于指针传递,不可以修改传入的数据
void testf(const string &a);
void testg(const string *a);

 

 

【还有很多遗漏的地方,待完善】

 

 

 

 

 

转载于:https://www.cnblogs.com/CAION/archive/2012/12/25/2832831.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值