C++的类型转换 类型转换4大金刚: static_cast 执行基础转换 const_cast (添加或者)移除 const dynamic_cast 执行已检查的多态转换,沿着继承层次结构安全地将指针和引用转换为向上、向下和横向的类 reinterpret_cast 执行一般的低级转换 stat ...
分类:
编程语言 时间:
2018-12-08 22:28:26
阅读次数:
137
由于作者不习惯该编辑器,只是贴出上本文的截图,详见:https://www.yuque.com/docs/share/afa80fea-f5fc-4113-8352-c26a987f3bf1
分类:
编程语言 时间:
2018-12-06 17:54:09
阅读次数:
132
使用cppcheck给工程代码做静态检查,主要发现了以下几个问题: 1.使用C风格的类型转换 警告如下: 应该使用C++提供的static_cast, const_cast, dynamic_cast 和 reinterpret_cast 做类型转换,明确转换的类型。 2.迭代器使用后置叠加(叠减) ...
分类:
其他好文 时间:
2018-12-03 23:03:15
阅读次数:
318
Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换 ...
分类:
编程语言 时间:
2018-10-16 14:29:40
阅读次数:
151
C++中提供了两种类型转换的方法: static_cast和dynamic_cast 简单从名字看一个是静态转换, 另一个是动态转换 一般转换分为两种: 上行转换和下行转换 上行转换大致意思是把子类实例向上转换为父类型, 下行转换是把父类实例转换为子类实例 通常子类因为继承关系会包含父类的所有属性, ...
分类:
编程语言 时间:
2018-09-15 13:50:10
阅读次数:
141
多重继承问题3: 示例: 用pbb指针去掉用funcB函数,结果打印的是funcA。这是不期望的。 问题分析: 这是由于第34行的强制类型转换造成的。 程序改进: 使用dynamic_cast做类型转换时,会有一个对指针修正的过程。暴力的强制类型转换没有指针修正过程。 结果如下: 工程中正确的使用多 ...
分类:
其他好文 时间:
2018-09-04 01:41:49
阅读次数:
164
很尴尬 二重指针之间转化,可以直接通过(classType**)转化 基类转派生类;static_cast(最好在debug下用dynamic_cast检查一下) 派生类转基类:隐式转化 ...
分类:
其他好文 时间:
2018-08-04 17:33:28
阅读次数:
121
?我们在学习了 C++ 之后,对于动态内存分配便有了两种方式。new 和 malloc 的区别是什么呢?delete 和 free 又有何区别?new 关键字与 malloc 函数的区别可以从以下几个方面说:1、new 关键字是 C++ 的一部分,malloc 是由 C 库提供的函数;2、new 是以具体类型为单位进行内存分配,malloc 以字节为单位进行内存分配;3、new 在申请内存空间时可进行初始化,malloc 进根据需要申请定量的内存空间。
分类:
其他好文 时间:
2018-06-01 10:53:33
阅读次数:
154
?我们在学习了 C++ 的继承之后,有没有想过一个类是否被允许继承自多个父类呢?那么在 C++ 中是支持编写多重继承的代码的,即一个子类可以拥有多个父类。此时子类拥有所有父类的成员变量,子类继承所有父类的成员函数,子类对象可以当作任意父类对象来使用。那么多重继承的语法如下所示,其本质与单继承相同!
分类:
其他好文 时间:
2018-05-31 22:03:51
阅读次数:
157
题目描述 在多态概念中,基类的指针既可以指向基类的对象,又可以指向派生类的对象。我们可以使用dynamic_cast类型转换操作符来判断当前指针(必须是多态类型)是否能够转换成为某个目的类型的指针。 同学们先查找dynamic_cast的使用说明(如http://en.wikipedia.org/w ...
分类:
其他好文 时间:
2018-05-23 22:13:09
阅读次数:
254