当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>C++中强迫转换函数总结</b>[VC/C++编程]

赞助商链接



  本文“<b>C++中强迫转换函数总结</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

尺度c++中主要有四种强迫转换范例运算符:

const_cast,reinterpret_cast,static_cast,dynamic_cast等等.

1)static_cast<T*>(a)

将地址a转换成范例T,T和a必须是指针、引用、算术范例或列举范例.

表达式static_cast<T*>(a),a的值转换为模板中指定的范例T.在运行时转换历程中,不举行范例查抄来确保转换的安全性.

例子:

class B { ... };
class D : public B { ... };
void f(B* pb, D* pd)
{
D* pd2 = static_cast<D*>(pb); // 不安全, pb大概只是B的指针

B* pb2 = static_cast<B*>(pd); // 安全的
...
}
class B { ... };
class D : public B { ... };
void f(B* pb, D* pd)
{
D* pd2 = static_cast<D*>(pb); // 不安全, pb大概只是B的指针

B* pb2 = static_cast<B*>(pd); // 安全的
...
}

class B { ... };
class D : public B { ... };
void f(B* pb, D* pd)
{
D* pd2 = static_cast<D*>(pb); // 不安全, pb大概只是B的指针

B* pb2 = static_cast<B*>(pd); // 安全的
...
}

2)dynamic_cast<T*>(a)

完成类层次构造中的晋升.T必须是一个指针、引用或无范例的指针.a必须是决意一个指针或引用的表达式.

表达式dynamic_cast<T*>(a) 将a值转换为范例为T的对象指针.假如范例T不是a的某个基范例,该操作将返回一个空指针.

例子:

class A { ... };
class B { ... };
void f()
{
A* pa = new A;
B* pb = new B;
void* pv = dynamic_cast<A*>(pa);
// pv 目前指向了一个范例为A的对象
...
pv = dynamic_cast<B*>(pb);
// pv 目前指向了一个范例为B的对象
}


  以上是“<b>C++中强迫转换函数总结</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .