const使用总结

常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。因此,定义或说明常类型时必须进行初始化。
const的用法有:
1 一般常量
2 对象常量
3 常指针和常引用,多用作函数的参数
4 常数据成员

5 常成员函数

1. 一般常量

  一般常量是指简单类型的常量。这种常量在定义时,修饰符const可以用在类型说明符前,也可以用在类型说明符后。如:

  int const x=2; 

  或 

  const int x=2; 

  定义或说明一个常数组可采用如下格式: 

  <类型说明符> const <数组名>[<大小>]…

  或者

  const <类型说明符> <数组名>[<大小>]…

  例如:

  int const a[5]={1, 2, 3, 4, 5};

  或

  const int a[5]={1, 2, 3, 4, 5}; 

 2. 常对象

常对象是指对象常量,定义格式如下:

<类名> const <对象名>

或者

const <类名> <对象名>

定义常对象时,同样要进行初始化,并且该对象不能再被更新,修饰符const可以放在类名后面,也可以放在类名前面。

3. 常指针

使用const修饰指针时,由于const的位置不同,而含意不同。

(1)指向字符串的常量指针:指向地址固定,内容可以变化。

char * const prt1 = stringprt1;

下面赋值是非法的。

ptr1 = stringprt2;

而下面的赋值是合法的:

*ptr1 = "m";

(2)指向字符串常量的指针:指向地址可以变化,内容固定。

const char* ptr2 = stringprt1;

下面赋值是非法的。 

*ptr2 = "x";

而:

ptr2 = stringptr2; 

是合法的。

所以,在使用const修饰指针时,应该注意const的位置。

4 常引用

使用const修饰符也可以说明引用,被说明的引用为常引用,该引用所引用的对象不能被更新。其定义格式如下:

const <类型说明符> & <引用名>

例如:

const double & v; 

在实际应用中,常指针和常引用往往用来作函数的形参,这样的参数称为常参数。

在C++面向对象的程序设计中,指针和引用使用得较多,其中使用const修饰的常指针和常引用用得更多。使用常参数则表明该函数不会更新某个参数所指向或所引用的对象,这样,在参数传递过程中就不需要执行拷贝初始化构造函数,这将会改善程序的运行效率。

5 常成员函数

使用const关键字进行说明的成员函数,称为常成员函数。常成员函数不会改变对象的属性。因此只有常成员函数才有资格操作常量或常对象,没有使用const关键字说明的成员函数不能用来操作常对象。常成员函数说明格式如下:

<类型说明符> <函数名> (<参数表>) const;

其中,const是加在函数说明后面的类型修饰符,它是函数类型的一个组成部分,因此,在函数实现部分也要带const关键字。

 

结果:

non-const:5,4

const:5,4

const:20,52

6 常数据成员

类型修饰符const不仅可以说明成员函数,也可以说明数据成员。

由于const类型对象必须被初始化,并且不能更新,因此,在类中说明了const数据成员时,只能通过成员初始化列表的方式来生成构造函数对数据成员初始化。 

 

结果:

100,10,100

0,10,0

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值