
#include <iostream>using namespace std;class color{  public:    virtual void f()     {          cout << "color::f()" << endl;    }   };class red : public color{  public:    void f()     {         cout << "red::f()" << endl;    }   };class blue : public color{  public:    void f()     {         cout << "blue::f()" << endl;    }   };class other{  public:    virtual void f()    {      cout << "other::f()" << endl;    }};int main() {  color *pc = new red;  blue* pb_dynamic = dynamic_cast<blue*>(pc);  blue* pb_static = static_cast<blue*>(pc);  cout << "pb_dynamic: " << pb_dynamic << endl;  cout << "pb_static: " << pb_static << endl;  //pb_dynamic->f();  //pc绑定的是red而不是blue,pb_dynamic为0,调用此句会失败  pb_static->f();  // pc绑定的是red而不是blue,static_cast不识别这些, 而是当做red的函数来处理!  other* _other = new other;  blue* pbo_dynamic = dynamic_cast<blue*>(_other);  //blue* pbo_static = static_cast<blue*>(_other);// _other绑定的是other而不是blue,编译的时候失败  cout << "pbo_dynamic: " << pbo_dynamic << endl;  delete pc;delete _other;  pc = NULL:_other = NULL;  return 0;}//总结:static_cast字面意思是静态转换,编译期间就能判断是否可以转换成功,但是无法识别兄弟指针之间的转换(先提升一个兄弟(red)指针为父指针(color),再向下转换(blue))而dynamic_cast是运行时转换,可以编译通过,但是可以与NULL指针的比较来判断是否转换成功!  
爱华网本文地址 » http://www.aihuau.com/a/25101014/225500.html
更多阅读

? ??查了很多资料,前景色和背景色的含义?很是模糊,后来联想到现实中画家的画板,就很清楚了。前景色和背景色只是根据人们画画的效果来分的。把整个画布都用一种颜色填充,就是背景色;工具如画笔,画刷使用的颜色就是前景色。一前一后,很明显。

因为太在意伟大的班长和血性的班副最后过得好不好,我直接翻看了原著小说,三页纸的内容,打字可用了一个半小时,为班长和班副,值了!!兰老不要告我侵发犯其著作权哦,真的是因为喜欢痴迷才摘印一段,下不为例!!而且里边一个字一个标点符

近日较多投资者向king_大漠这厮咨询现货交易中关于外盘和内盘的含义及其用法,为了帮助更多的交易者,king_大漠这厮特地整理了一些关于外盘和内盘的资料和含义,供大家参考学习:内盘:在成交量中以主动性叫卖价格成交的数量,所谓主动性叫买,

《劳动法》与《劳动合同法》中关于无固定期限劳动合同规定对比【无固定期限劳动合同前后对比】无固定期限劳动合同,是指用人单位与劳动者约定无确定终止时间的劳动合同,《劳动法》与《劳动合同法》中关于无固定期限劳动合同的定义规

一 概述水分散粒剂,又名干悬浮剂,是20世纪80年代国际上研究开发成功的农药新剂型和新的制剂加工技术。它是一种可分散在水中的固体制剂。在1986年第六届国际农药化学会议上,水分散粒剂被认为是一种既具有粒剂的一切优点,又具有悬浮剂高