关于static_cast static——cast

在其它地方看到static_cast的用法,查了一下MSDN,了解了一下它的使用问题。MSDN中描述到:(部分翻译,有译错的地方请指点)

表达式static_cast < type-id > ( expression)将 expression 转换成type-id指定的类型.但是在这个转换过程中没有运行时类型检查,不能保证转换的安全性。

使用方式

static_cast < type-id > ( expression )

static_cast可用于将父类的指针转换为其子类的指针。但是这种转换是不安全的。例如:

class B { ... };class D : public B { ... };void f(B* pb, D* pd){  D* pd2 = static_cast<D*>(pb); // not safe, pb may  // point to just B  B* pb2 = static_cast<B*>(pd); // safe conversion  ...}

又如:

class B { ... };class D : public B { ... };void f(B* pb){   D* pd2 = static_cast<D*>(pb);}
void main()
{
    B* d = new D(); 
    B *b = new B();
    f(d); //ok
    f(b); //unsafe
}

static_cast也支持简单类型的转换. 例如:

typedef unsigned char BYTEvoid f(){   char ch;   int i = 65;  -- float f = 2.5;   double dbl;   ch = static_cast<char>(i);         // int to char   dbl = static_cast<double>(f);         // float to double   ...   i = static_cast<BYTE>(ch);   ...}

static_cast还可以将int变量转化为枚举类型。如果int类型的值不在枚举类型的数值范围内则返回一个未知的数。例如:

int main(int argc, char* argv[])
关于static_cast static——cast
{
enum Color{Red=0, Blue, Green};

int ncol = 1;
Color mycolor =static_cast<Color>(ncol);
ncol = 3;
Color mycolor2 =static_cast<Color>(ncol);

return 0;
}

调试会发现,mycolor的值是Blue,而mycolor2的值是3,并不是Color定义中的某个值。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/268915.html

更多阅读

关于饮水:1 喝水方法和每天喝多少水合适

关于饮水:[1]喝水方法和每天喝多少水合适——简介水是生命之源,我们每天都在喝水,但是你真的知道该怎么喝水吗?每天喝多少水合适吗?今天,就来介绍一下。关于饮水:[1]喝水方法和每天喝多少水合适——方法/步骤1关于饮水:[1]喝水方法和每天喝

关于汽车贴膜防紫外线小常识 汽车防紫外线隔热玻璃

今天,和您说说关于汽车贴膜防紫外线的小常识,希望能够帮助到您。紫外线是一种低能量的电磁辐射,波长范围为240~280nm,最适的波长为260nm,这与DNA吸收光谱范围相一致。其杀菌原理是紫外线易被核蛋白吸收,使DNA的同一条螺旋体上相邻

关于文件夹变为.exe文件解决方法 文件夹变为exe

关于文件夹变为.exe文件解决方法相关工具软件下载:http://pan.baidu.com/s/1sjFF0gl1.有时候我们会遇到这种情况,文件夹变成了可执行文件,杀毒软件报告病毒,同时将文件加入到隔离区,下面我就来介绍下解决方法:图片中GiveIO文件夹变成了

关于儿童学习跆拳道的几个问题

关于儿童学习跆拳道的几个问题——简介练习跆拳道能提高吃苦耐劳的能力.无论练习哪种武术,都是要下苦功夫的,一个动作为了做的标准,有力量、有速度,可能要练习成百上千次,没有吃苦耐劳的精神是做不到的.强身健体.跆拳道也是一项体育竞技,

关于淘宝品牌授权 淘宝品牌授权书怎么弄

关于淘宝品牌授权——简介在 经销 模式下,经销商在已经加入消保并且缴纳保证金的基础上,如果想要获得 “品牌授权”的标志,需要供应商的授权。关于淘宝品牌授权——方法/步骤关于淘宝品牌授权 1、

声明:《关于static_cast static——cast》为网友冷艳女王分享!如侵犯到您的合法权益请联系我们删除