数据类型转换:static_cast,const_cast等用法(转载)
来源:互联网 发布:移动卡怎么开通4g网络 编辑:程序博客网 时间:2024/06/05 10:23
* C++提供了四种新的类型强制:
static_cast
const_cast
reinterpret_cast
dynamic_cast
1)staic_cast静态强制;
不能在无关的指针之间进行static类型强制
class CAnimal
{
//...
public:
CAnimal(){}
};
class CGiraffe:public CAnimal
{
//...
public:
CGiraffe(){}
};
int main(void)
{
CAnimal an;
CGiraffe jean;
an = static_cast<CAnimal>(jean);//将对象jean强制成CAnimal类型
return 0;
}
2、const_cast类型强制
const_cast类型强制将一个const变量变成一个非const的等价形式
int main()
{
const int j = 99;
int * k;
k = const_cast<int *>(&j);//解除const
return 0;
}
3、reinterpret_cast运算符
reinterpret_cast运算符用来将一个类型指针转变为另一种类型的指针,也用在将整开型量转为指针,或将指针转为整型量上;
int main()
{
int j = 10;
int * ptr = &j;
char * cptr;
cptr = reinterpret_cast<char *>(ptr);//将int指针类型转变为char的指针类型
return 0;
}
4、dynamic_cast运算符
dynamic_cast的主要目的是:
1)它返回派生类对象的地址;
2)它测试基类指针是否指向下一尖括号<>中所指定类型的对象
dynamic_cast是一个运行时类型信息,dynamic_cast运算符将指向派生对象的基类部分的基类指针转变为指向派生对象的派生类指针,dynamic_cast必须严格地指定与派生对象相同的类,或者它返回NULL指针;
class CAnimal
{
//...
};
class CGiraffe:public CAnimal
{
//...
};
class CGoat:public CAnimal
{
//...
};
int main()
{
CGiraffe gene;
CAnimal * aptr = &gene;
CGiraffe * ptr1,* ptr2;
ptr1 = dynamic_cast<CGiraffe *>(aptr);
ptr2 = dynamic_cast<CGoat *>(aptr); //return NULL
return 0;
}
- 数据类型转换:static_cast,const_cast等用法(转载)
- 数据类型转换:static_cast,const_cast等用法(转载)
- 数据类型转换:static_cast,const_cast等用法(转载)
- 数据类型转换:static_cast,const_cast等用法
- 数据类型转换(static_cast, const_cast ,reinterpret_cast ,dynamic_cast )
- 数据类型转换(static_cast, const_cast ,reinterpret_cast ,dynamic_cast )
- 数据类型转换(static_cast, const_cast ,reinterpret_cast ,dynamic_cast )
- 数据类型转换(static_cast, const_cast ,reinterpret_cast ,dynamic_cast )
- c++ 数据类型转换 static_cast const_cast dymamic_cast reinterret_cast
- c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast
- 走进C++程序世界-------强制数据类型转换(static_cast、dynamic_cast、reinterpret_cast、const_cast)
- static_cast、dynamic_cast、reinterpret_cast、const_cast,指针,数据类型的强制转换
- const_cast、static_cast、reinterpret_cast用法(笔记)
- static_cast、const_cast用法
- static_cast、const_cast用法
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
- 让国人脸红!崔永元套出的震撼!
- 田溯宁关于Google退出中国的评论
- 孙子兵法
- DAO简介(MFC)
- s3c2440实时时钟中断
- 数据类型转换:static_cast,const_cast等用法(转载)
- C#中DllImport用法和路径问题
- ogrenewt初学者教程
- 今天有些无聊 在csnd上发布了几个软件
- 需要良师的帮助
- sql 获取当前月的第一天 00:00:00 和最后一天 23:59:59 ,获取上一年1月1日 00:00:00 和当前年份 用于统计~~~
- cisco 模拟器搭建简易校园网
- Musical Chairs(约瑟夫问题高效算法)
- SCOM 工作概念介绍 [SCOM中文系列之四]