C++提供了四种新的类型转换
来源:互联网 发布:彩票走势分析软件 编辑:程序博客网 时间:2024/06/05 07:02
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;}
- C++提供了四种新的类型转换
- C++提供了四种新的类型强制
- C++提供了四种新的类型强制
- Spring3.1.2 提供的类型转换支持
- C++中提供的类型转换方式
- struts2中提供的类型转换
- C++中尽量使用C++提供的类型转换(2)---《More Effective C++》
- C#.NET 的 类型转换
- C语言的类型转换
- C语言的类型转换
- C语言的类型转换
- c语言的类型转换
- 程序猿之---C语言细节16(看了绝对值,编译类型ANSI C和K&R C类型判断,c编译器类型转换bug的细节)
- C++提供了四个显式的数据类型转换函数
- 在Python标准库的json包中,提供了JSONEncoder和JSONDecoder两个类来实现Json字符串和dict类型数据的互相转换。
- 在Python标准库的json包中,提供了JSONEncoder和JSONDecoder两个类来实现Json字符串和dict类型数据的互相转换。
- C++/C指针的类型转换
- c++primer第二章“c++定义了几种基本类型,还提供了可用于自定义数据类型的机制,此外,我们还能修改已有的类型以形成复合类型”
- Lotus数据库与模板之间的关系
- Informix 动态服务器错误代码中文详解(一)
- Task和Activity相关
- Domino群集知识
- checkbox 文字与多选框的对齐问题
- C++提供了四种新的类型转换
- Android XML解析之Pull
- iNotes中如何修改字体大小与菜单
- 第三章 IP:网际协议
- it网管实践 实验
- Domino如何恢复误删除的管理员文档
- csdn第二堂课
- TCP/IP详解读书笔记(第四章 ARP:地址解析协议)
- sizeof,strlen的区别