Const限定修饰符

const 修饰的对象只具有可读性从而得到强制的保护,可以防止它被意外的改动。所以:“Use const whenever you need ”。它可以用来修饰常数量,变量(包括指针变量和引用变量)和函数

1.     Const 定义常数量

const DataType VaribleName =VaribleValue;// 定义的常数量

Const 修饰的常量值,具有不可变性。并且C++ 的编译器通常不为const 常量分配储存空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储于读内存的操作,使得它的效率也很高。

2Const 用于指针

Const 用于指针可分为3 种情况:

// 指向常量的非常量指针,指针var 可变,指针所指向的值*var 不可变

int const *var;

// 指向非常量的常量指针,指针var 不可变,指针所指向的值*var 可变

int *const var;

// 指向常量的常量指针,指针var 和指针所指向的值*var 也不可变

Int *const var;

解读:

   Const 是一个左结合的类型修饰符,它与其左侧的类型修饰符 合为一个类型修饰符,所以,int const 限定*var 而不限定var ,而int *const 限定的是var 而不是*var

 

3.const 修饰函数的参数

A .如过输入的参数采用值参数,由于函数将自动产生临时的变狼用语复制该参数,该输入的参数本来就无需保护,所以不必加const 修饰。

// 输入参数为值参数,不加const

void display(vector<int > ivec)

{

}

B .如果输入参数采用的指针参数,那么加const 修饰可以防止意外地改动该指针参数,起到保护的作用。

// 出入参数为指针参数,加const 防止被意外修改

Void display(const vactor<int> *ivec)

{

}

C .如果输入参数采用引用参数,那么加const 修饰可以防止意外地改动该引用参数,起到保护作用。

// 输入参数为引用参数,加const 防止被意外修改

 Void display (const vector<int> &ivec)

{

}

 

4.const 修饰函数的返回值

A .如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const 修饰没有任何价值。

B .如果给以“指针传递”方式的函数返回值加const 修饰,那么函数返回值(即指针)的内容不能被修改,并且该返回值只能赋给加const 修饰的同类型指针

C .如果给以“引用传递”方式的函数返回值加const 修饰,那么该返回值的内容不能被修改。

5.const 修饰成员函数

Cosnt 用于修饰类中的成员函数,表示这个成员函数不会改变类的状态(即类的私有数据)

      Class ClassName

{

Public:

Int Fun() cosnt;

//const 成员函数,表明该函数不会修改类的状态

// 类声明的其他部分

} ;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值