从今天開始,对C++经常使用技术做个总结。參考书籍:《C++Primer》、《C++对象模型》、《设计模式》、《Windows核心编程》、《STL解密》。1.static_cast等四个cast的详细意义C++类型转换:隐式转换和显式转换。显式转换:static_cast、dynamic_cast、...
分类:
编程语言 时间:
2015-02-26 19:53:27
阅读次数:
150
C++拾遗--name_cast 显式类型转换
前言
C++中提供了四种显式的类型转换方法:static_cast,const_cast,reinterpret_cast,dynamic_cast.下面分别看下它们的使用场景。
显式类型转换
1.staitc_cast
这是最常用的,一般都能使用,除了不能转换掉底层const属性。...
分类:
编程语言 时间:
2015-02-18 22:07:23
阅读次数:
407
C++ 转型操作符 【1】static_cast 和const_cast...
分类:
编程语言 时间:
2015-02-04 20:25:25
阅读次数:
164
loadingbar就是进度条,如果要实现进度条的滑动,我们必须要实现update函数例如:
void HelloWorld::update(float delta)
{
_count++;
if (_count > 100)
_count = 0;
LoadingBar * loadingBar = static_cast(getChildByTag(0));
loadingBa...
分类:
编程语言 时间:
2015-02-03 19:34:51
阅读次数:
232
旧式的C语言转型方式,是存在缺点的,主要在一下两个方面:
1.它几乎允许你将任何类型转换为任何其它类型。
2.转型是难以识别的。旧式转型的语法结构是由一对小括号加上一个对象名称组成,而小括号和对象名称在C++的任何地方都有可能被使用。
为了解决C旧式转型的特点,C++引入4个新的转型操作符(cast operators):static_cast, const_cast, dynamic_ca...
分类:
编程语言 时间:
2015-01-29 12:47:33
阅读次数:
167
C++的类型转换有四种 const_cast, reinterpret_cast, static_cast, dynamic cast
这边举一个dynamic cast的小例子
#include
using namespace std;
class BaseClass{
public :
int m_iNum;
virtual void foo() {...
分类:
编程语言 时间:
2015-01-19 19:09:47
阅读次数:
127
C++类型转换
const_cast,去const属性。
static_cast,静态类型转换。如int转换成char。
dynamic_cast,动态类型转换。如子类和父类之间的多态类型转换。
reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。
const_cast:
const int& a = 9;
const_cast(a) = 10;
...
分类:
编程语言 时间:
2015-01-16 16:44:10
阅读次数:
170
static_cast可以用来类的上行转换,也可以用来下行转换,但这样可呢有安全问题用来void* 的转换整形之类的非指针转换dymanic_cast用于指针和引用的转换用于上行转换,下行转换回失败如果不是完整的原对象将会失败。const_cast用于转换const属性的对象。 或者移除。class...
分类:
编程语言 时间:
2014-12-29 22:45:01
阅读次数:
184
在C++中,存在类型转换,通常意味着存在缺陷(并非绝对)。所以,对于类型转换,有如下几个原则:(1)尽量避免类型转换,包括隐式的类型转换(2)如果需要类型转换,尽量使用显式的类型转换,在编译期间转换(3)避免使用reinterpret_cast和老式的强制类型转换操作符通常,隐式的类型转换会导致警告...
分类:
编程语言 时间:
2014-12-25 12:59:25
阅读次数:
219
static_cast,dynamic_cast, const_cast, reinterpret_castdynamic_cast比static_cast多了安全检测,判断源和目标有无继承被继承关系,所以强制将父类指针赋给子类指针的时候只能用static_cast。如class D:public ...
分类:
编程语言 时间:
2014-12-24 07:36:37
阅读次数:
145