c++cast(c++casting)
本篇文章给大家谈谈c++cast,以及c++casting对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
c语言的cast()怎么用,新手求教
您好,
对于具有标准定义转换的简单类型而言工作的很好。然而,这样的转换符也扰困困能不分皂白的应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:'reinterpret_cast', 'static_cast', 'dynamic_cast' 和 'const_cast',目的在于控制类(class)之间的类型转换。
C++的四种cast操作符的区别和用法:
1 reinterpret_cast
'reinterpret_cast'转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型。反之亦然。(译注:是指针具体缓念的地址值作为整数值?)
这个操作符能够尺腔在非相关的类型之间转换。操作结果只是简单的从一个指针到别的指针的值的二进制拷贝。在类型之间指向的内容不做任何类型的检查和转换。
如果情况是从一个指针到整型的拷贝,内容的解释是系统相关的,所以任何的实现都不是方便的。一个转换到足够大的整型能够包含它的指针是能够转换回有效的指针的。
2 static_cast
'static_cast'允许执行任意的隐式转换和相反转换动作。(即使它是不允许隐式的)
应用到类的指针上,意思是说它允许子类类型的指针转换为父类类型的指针(这是一个有效的隐式转换),同时,也能够执行相反动作:转换父类为它的子类。
3 dynamic_cast
'dynamic_cast'只用于对象的指针和引用。当用于多态类型时,它允许任意的隐式类型转换以及相反过程。不过,与static_cast不同,在后一种情况里(注:即隐式转换的相反过程),dynamic_cast会检查操作是否有效。也就是说,它会检查转换是否会返回一个被请求的有效的完整对象。
检测在运行时进行。如果被转换的指针不是一个被请求的有效完整的对象指针,返回值为NULL.
4 const_cast
这个转换类型操纵传递对象的const属性,或者是设置或者是移除:
其它三种操作符是不能修改一个对象的常量性的。
注意:
'const_cast'也能改变一个类型的volatile qualifier.
——如有帮助,请采纳一下。
[img]C++,const_cast的用法
上面可改为:
const int a=789 ;
const_castint(a)=987;
但是这样你并不能改变a的值哦,你想改变a的陪宴值就不要设为const,const_cast也不是为了让你改变const对象的,这个主要是用来给函数的非const形罩搏参传const参数时进行转换,让编译可执行。
const int a=789 ;
int b = const_castint(a);
int *c = const_castint*(a);
b = 987;
*c = 999;
cout "a="芦闷银aendl;
cout "b="bendl;
cout "*c="*cendl;
cout "a="aendl;
cout "b="bendl;
cout "c="cendl;
你可以按照我上面的程序,打出来看看,研究下哦~
广播剧s和c什么意思
S是staff的意思,就是带历指这个剧的剧组的工作人员,包括编辑、蠢伍搜导演、策划、后期、橘租翻唱等
C就是cast的意思,指演员表,就是CV名单,谁配哪个角色
以上
关于c++cast和c++casting的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。