C++ 类型转换符区别分析

转载自:https://blog.csdn.net/legalhighhigh/article/details/87459995

1.static_cast
用于将参数转换为指定类型。需要注意的是,进行类型转换时,编译器不会进行类型检查保证安全性。当对类对象进行下行类型转换时,也不会进行动态类型检查,因此是不安全的。static_cast中提供了空指针与任何类型指针的互相转换。

2.dynamic_cast
用法与static_cast基本类似。但在进行类型转换时,编译器会主动进行类型安全检查。dynamic_cast同样支持进行上下行类型转换,但编译器会进行类型检查。当下行转换时,如果父类中不包括虚函数,则编译器会报错。另外,dynamic_cast不支持空指针与一般指针之间的转换。

3.const_cast
const_cast用来修改(去掉)对象的const、volatile和_unaligned属性,除此之外,转换前后的变量并无区别,甚至它们在内存中的地址也是相同的。

posted @ 2019-11-03 16:55  灼光  阅读(154)  评论(0编辑  收藏  举报
document.body.oncopy=function(){ event.returnValue=false; var t=document.selection.createRange().text; var curUrl = window.location.href; var s="本文来源于灼光的博客(https://www.cnblogs.com/laiyingpeng/) , 原文地址:" + curUrl + "转载请加上原文地址。"; clipboardData.setData('Text','\r\n'+t+'\r\n'+s+'\r\n\r\n\r\n'); }