4个类型转换关键字

原创 2015年07月06日 19:20:16
  • const_cast
  • static_cast
  • dynamic_cast<>
  • reienterpret_cast<>
    经常不被使用的是3和4,重点说之。

dynamic_cast在类的继承关系的前提下使用,没有继承关系的类之间转换会为空。其中虚函数的特性非常重要,在这里重点体现;
如果没有虚函数,该转换也会发生问题。(经常在书上看到RTTI特性和此相关的说明,可能就是这个问题)
1.基类转换到子类,发生错误;(其实也不是错误,就是为空了)(安全性检测的重要性,也就是说不要把基类转换到子类)
2.子类转换到基类,正确,也就是常说的向下转换,调用的也是相应的虚函数;
(测试中发现问题,很简单,用到该关键字就要考虑继承的类之间是否有虚函数表)

reienterpret_cast:
可以把一个指针转换为非指针,同理也可以把非指针转换为指针,很神奇,慎用之。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++中的4个类型转换关键字

本文转自 http://poplars.blog.163.com/blog/static/1394221742013021111210567/,版权归原作者所有。 1、const_cast ...

在C++中,有哪4个与类型转换符相关的关键字?这些关键字各有什么特点,在什么场合下使用?

C++与类型转换相关的4个关键字

C++的4个类型转换运算符的用法介绍

注:一直在用dynamic_cast做指针的智能转换,今天突然又发现了static_cast这个转换符,不知道神马意思,小小的汗一下,下面这篇系统介绍4个类型转换符的文章来自其他网站,学习下。   ...

C++与类型转换相关的4个关键字

什么是类型转换? 表达式是否合法取决于操作数的类型,而且合法的表达式其含义也由操作数类型决定。但是在C++中,某些类型之间存在相关的依赖关系。若两种类型相关,则可在需要某种类型的操作数位置上,使用该类...

C++四种类型转换的关键字及其特点

C++四种类型转换的关键字及其特点 原文地址:http://blog.sina.com.cn/s/blog_5a2bbc860101hgho.html C++的四种强制类型转换,所以C++不是类型...

c\c++复习基础要点09---关键字explicit c++四种类型转换

1.      关键字explicit 通过关键字explicit的作用,我们可以禁止“单参数构造函数”被用于自动类别转换。 在 C++ 中, 如果一个类有只有一个参数的构造函数,C++ 允许一种...

C++的4种类型转换关键字

1 reinterpret_cast 'reinterpret_cast'转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型。反之亦然。(译注:是指针具体的地址值作为整数值?) 这...

【七】C++一些新的关键字 -- new、delete、强制类型转换

1、动态内存分配C++中的动态内存分配已经和C语言有了明显区别: C++中通过new关键字进行动态内存申请 C++中的动态内存申请是基于类型进行的 delete关键字用于内存释放   变量申请和释放...
  • CMbug
  • CMbug
  • 2015-08-23 14:55
  • 971

c++中的explicit关键字及隐式类型转换

c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?如果c++类的构造函数有一个参数,那么在编译的时候就...

[C++学习01]强制类型转换和volatile关键字

本篇作为C++学习的开篇之作,主要讲解一下C++中的4种强制类型转换和volatile关键字,其中主要参考了以下一些网上资源: 1. C++显式类型转换示例详解 2. C++中的显式类型转换 强制...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)