const使用位置

1. 定义限定变量类型

用于指针的两种情况:const是一个左结合的类型修饰符.  

int const *A; //A可变,*A不可变  int *const A; //A不可变,*A可变  


2.限定函数的传递值参数:  

void function(const int Var); //传递过来的参数在函数内不可以改变.  


3.限定函数返回值型.  

const int function(); //此时const无意义  const myclassname function(); //函数返回自定义  类    型myclassname.  

    a.const int fun1() //这个其实无意义,因为参数返回本身就是赋值。
   
b. const int * fun2() //调用时const int *pValue = fun2();
                          //
我们可以把fun2()看作成一个变量,即指针内容不可变。
   
c.int* const fun3()   //调用时int * const pValue = fun2();
                          //
我们可以把fun2()看作成一个变量,即指针本身不可变。


4限定函数类型.  

void function()const; //常成员函数, Const成员函数不能改变对象的成员函数。




采用const_cast 进行转换。 
用法:const_cast <type_id>  (expression)
该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。

常量指针被转化成非常量指针,并且仍然指向原来的对象;

常量引用被转换成非常量引用,并且仍然指向原来的对象;

常量对象被转换成非常量对象。


const_cast<A&>(a).foo1();    //ok

去掉A的常成员变量的常量性
const_cast<int &>(a.m_count) = 1; //ok


Const 变量必须在初始化成员列表中初始化

Const变量必须在初始化成员列表中初始化






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值