<b>More Effective C++:范例转换</b>[VC/C++编程]
本文“<b>More Effective C++:范例转换</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
细心想想地位卑贱的范例转换功效(cast),其在程序计划中的地位就象goto语句一样令人鄙视.但是它还不是无法令人忍耐,因为当在某些紧急的关头,范例转换还是必须的,这时它是一个必须品.
不过C气势的范例转换并不代表全部的范例转换功效.一来它们过于粗鲁,能答应你在任何范例之间举行转换.不过假如要举行更切确的范例转换,这会是一个长处.在这些范例转换中存在着宏大的差别,比方把一个指向const对象的指针(pointer-to-const-object)转换成指向非const对象的指针(pointer-to-non-const-object)(即一个仅仅去除cosnt的范例转换),把一个指向基类的指针转换成指向子类的指针(即完好改变对象范例).传统的C气势的范例转换不对上述两种转换举行辨别.(这一点也不令人惊奇,因为C气势的范例转换是为C语言计划的,而不是为C++语言计划的).
二来C气势的范例转换在程序语句中难以辨认.在语法上范例转换由圆括号和标识符构成,而这些可以用在C++中的任何地方.这使得答复象这样一个最基本的有关范例转换的问题变得很艰难,“在这个程序中能否利用了范例转换?”.这是因为人工阅读极大概忽视了范例转换的语句,而操纵象grep的工具程序也不能从语句构成上辨别出它们来.
C++通过引进四个新的范例转换操作符降服了C气势范例转换的缺陷,这四个操作符是,static_cast, const_cast, dynamic_cast, 和reinterpret_cast.在大大都情形下,关于这些操作符你只需求知道本来你习惯于这样写,(type) expression而目前你总应当这样写: static_cast(expression);比方,假定你想把一个int转换成double,以便让包含int范例变量的表达式产生出浮点数值的后果.假如用C气势的范例转换,你能这样写:
以上是“<b>More Effective C++:范例转换</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |