static_cast
const_cast
reinterpret_cast
dynamic_cast
1)staic_cast静态强制;
不能在无关的指针之间进行static类型强制
2、const_cast类型强制
const_cast类型强制将一个const变量变成一个非const的等价形式
3、reinterpret_cast运算符
reinterpret_cast运算符用来将一个类型指针转变为另一种类型的指针,也用在将整开型量转为指针,或将指针转为整型量上;
4、dynamic_cast运算符
dynamic_cast的主要目的是:
1)它返回派生类对象的地址;
2)它测试基类指针是否指向下一尖括号 <> 中所指定类型的对象
dynamic_cast是一个运行时类型信息,dynamic_cast运算符将指向派生对象的基类部分的基类指针转变为指向派生对象的派生类指针,dynamic_cast必须严格地指定与派生对象相同的类,或者它返回NULL指针;
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; }发表评论
-
const 与static 关键词在c 和 c++中的作用
2012-08-11 11:49 967一.C语言中的const ... -
error LNK2005 and error LNK2019
2012-08-09 23:08 1098error LNK2005 and error LNK2019 ... -
LIBCD.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSV
2012-08-07 09:20 1385LIBCD.lib(crt0dat.obj) : error ... -
在VS2010下配置VC++ Directories
2012-08-07 08:29 10461:可以 在“class View” 面板 -> 右 ... -
零星笔记,待整理
2010-11-01 13:00 478//用 getline 函数从输入读取整行内容。然后为 ... -
VC: error LNK2019:unresolved external symbol *** referenced in function ***的解决方案
2010-10-30 21:13 2106当头文件中声明了一个函数,但是在相应的源文件中却没有对该函数进 ... -
stdcall cdecl fastcall thiscall naked call的具体含义
2010-10-30 18:54 959在C语言中,假设我们有 ... -
#define总结 (网上资料汇集)
2010-10-30 08:06 7161. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号 ... -
(zz)编译与使用Qt4,Visual Studio Express 2008
2010-10-14 22:35 1375一、Qt版本 我现在用的是4.5.2。好像前段时间4.6出来 ... -
strcat 内部实现
2010-09-21 00:43 1798char * strcat(char * dest, ... -
deep copy & shallow copy
2010-09-15 19:27 817A shallow copy of an object cop ... -
reinterpret_cast的本质(转)
2010-09-14 23:15 1613先看看下面的代码: #include <iostr ... -
C++ 经典书籍
2010-09-14 16:18 1684下载地址: http://www.51cnnet.net/di ... -
内存对齐的规则以及作用
2010-09-14 00:14 687首先由一个程序引入话 ... -
[转]C++ reinterpret_cast,const_cast等 显式类型转换总结
2010-09-13 23:23 1012#include<iostream.h> ... -
C++著名程序库的比较和学习经验
2010-09-13 19:30 8241、C++各大有名库的介绍——C++标准库 2、C++各大有名 ... -
c++ library and resource List
2010-09-13 18:56 8971,前言 无数次听 ... -
C++中操作符operator的两种用法
2010-09-12 02:23 11171.operator overloading C++可能通过o ... -
两种自动类型转换:构造函数与operator
2010-09-12 02:23 889如果有两个对象:one, two, 要想把one转换成为two ... -
C++中的类拷贝构造函数和模板拷贝构造函数
2010-09-11 20:53 3002类(包括模板类)构造函数是真实的构造函数;然而模板构造函数,其 ...
相关推荐
C++ 四种强制类型转换的总结
c++四种强制类型转换 学习C++的可以好好的看看
详解c++四种强制类型转换的用法和区别,你一定会用到
C++4种强制类型转换 C++4种强制类型转换 C++4种强制类型转换 C++4种强制类型转换
C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。
那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++中风格是static_cast(content)。C++风格的强制转换其他的好处是,它们能更清晰...
C++强制类型转换的资料,详细介绍了C++特有的四种类型转换机制,供有需要的人下载!
C++的cast强制类型转换,C++的类型转换方式使用教程
c++中提供了四种新的强制转换分别是:const_cast、dynamic_cast、reinterpret_cast、static_cast.这四种转换类型,每一种都适用于特定的目的:const_cast 一般用于强制取消对象的常量性。它是唯一能够做到这一点的...
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast。 1、static_cast 用法:static_cast (expression) 该运算符把expression转换为type-id类型,但没有运行时类型检查来...
C++ 中的强制类型转换,显示转换也成为强制类型转换(cast),包括以下列名字命名的强制类型转换操作符:static_cast、dynamic_cast、const_cast、reinterpret_cast。
四种强制类型转换:static_cast const_cast dynamic_cast reinterpret_cast 1、static_cast 编译器隐式执行的任何类型转换都可以由static_cast显示完成。 ①用于类层次结构中基类和子类之间指针或引用的...
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,...
本文详细介绍了C++中的四个用与强制类型转换的运算符:用来修改类型的const 或volatile 属性的const_cast,用来修改操作数类型的reinterpret_cast,static_cast,dynamic_cast
C++四中常用强制类型转化, :static_cast、dynamic_cast、reinterpret_cast、和const_cast
C++其实也具有自己的一套强制类型转换它们分明是:static_cast reinterpret_cast const_cast dynamic_cast四种类型. 那么肯定会有人好奇C++是不是闲,C语言的强制类型用的舒舒服服的,为什么要新推出来这几个? 新...
1.1 强制类型转换 大家都知道在C语言里强制类型转换的方法非常简单,只要在要转换的变量... 在C++语言里为了让强制类型转换更明显,更安全,所以把不同情况下的强制类型转换分为四种,分别为: static_cast
《深入理解C++11:C++11新特性解析与应用》主要内容:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11...