0
点赞
收藏
分享

微信扫一扫

C++ const_cast基本用法

1.const_cast的基本用法

const_cast的用法比较单一,适用于同类型指针或引用之间转换,将同类型的指针或引用脱去const属性,一般是不允许在同类型变量或者对象之间使用,因为这样无意义本质上const_cast不能真正的去掉变量的const属性,而是去掉了编译器对变量const属性的检查。多用在与第三方库调用时避免函数入参不兼容的问题
````c++
#include <iostream>

class Entry {
public:
explicit Entry() {

}
~Entry() {

}

public:
int mData;
const std::string mName = "whfan";
const char* pValue = "GPU";
};

int main() {
Entry e;
char pGet = const_cast<char>(e.pValue);
std::cout << pGet << std::endl;
//*pGet = 'C'; //编译时报异常,写入访问权限冲突
std::
system("pause");
return 0;
}


> \- [1]**const_cast一般不会使用,使用很大程度上是代码设计不合理,全局/const/static变量都是存储在静态存储区**
### 3.1 const_cast存在的意义
> const_cast既然不能脱去变量的const属性,那为什么还要const_cast转换,原因是,我们可能调用了一个参数不是const的函数,而我们要传进去的实际参数确实const的,但是我们知道这个函数是不会对参数做修改的。于是我们就需要使用const_cast去除const限定,以便函数能够接受这个实际参数。
举报

相关推荐

0 条评论