- 2
- 0
- 约3.82千字
- 约 5页
- 2017-01-07 发布于江苏
- 举报
C隐式和显式初始化,类型转换
-- 1. 隐式和显式初始化1.1 C++隐式初始化int ival(1024);string hello(Hello world.)1.2 C++显式初始化int ival = 1024;string hello = Hello world.2.隐式和显式类型转换.2.1 C++隐式转换发生在四种情况下* 在混合类型的算术表达式中 int ival = 3; double dval = 3.1415 ival + dval; //ival 被提升为double 类型:3.0* 用一种类型的表达式赋值 int *pi = NULL; // NULL(0)被转换成了int* 类型的空指针值* 用一个表达式传递给一个函数调用 extern double sqrt(double); sqrt(2); //2被提升为double类型: 2.0* 从一个函数返回一个表达式 double difference(int ival1, int ival2) { return ival1 - ival2; //返回值被提升为double 类型. } 2.2C++内建类型(char,int,short,double etc.)对像之间默认含有隐式转换2.3C++用户定义类对象之间可以含有隐式转换.void dosomething(A aObject);class A {public: A(int x = 0);}dosomething(20); // Ok 隐式转换2.4 C++显式转换包含四种转换static_cast : 编译期的转化,不能转换掉exdivssion的const、volitale、或者__unaligned属性*所有内建类型对象之间的隐式转换都可用static_cast.*把空指针转换成目标类型的空指针用static_cast。*把任何类型的表达式转换成void类型用static_cast。*类层次间的上行转换和下行转换也可以用static_cast,但下行转换即当把基类指针或引用转换成子类表示时,由于没有动态类型检查,所以是不安全的.反之是安全的.dynamic_cast : 运行期的转换,类层次间的上行转换和下行转换* dynamic_cast具有类型检查的功能,下行转换的效果跟static_cast是一样的,但下行转换比static_cast更安全。* dynamic_cast还支持交叉转换,两个类如果有共同的祖先,他们的指针就可以用dynamic_cast.const_cast : 编译期的转化,类型中的常量reinterpret_cast : 任何指针都可以转换成其它类型的指针,可用于如char* 到 int*,或者One_class* 到 Unrelated_class* 等的转换,因此可能是不安全的。 2.5C++内建类型指针之间不含有隐式转换(void * 除外),需要显式转换。int ival = 0;char* pc = NULL;int* pi = NULL;void* pv = NULL;const char* pcc = Hello world;const int* pci = ival;const void* pcv = NULL;pc = pi; //错误,没有标准的隐式转换.pc = reinterpret_castchar*(pi); //必须使用reinterpret_cast 在位模式层次的显式转换pc = pv; //错误,没有标准的隐式转换.pc = static_castchar*(pv); //static_cast显式转换pc = pcc; //错误,没有标准的隐式转换.pc = const_castchar*(pcc); //const_cast显式转换pc = pcv; //错误,没有标准的隐式转换.pc = static_castchar*(const_castvoid*(pcv)); //先const_cast 后 static_cast.pv = pc; // OK; 隐式转换到void*pv = pi; // OK; 隐式转换到void*pv = pcc; //错误,没有标准的隐式转换.pv = const_castchar*(pcc); //OK, const_cast显式转换,并且char* 隐式转换到void*pv = pcv;//错误,没有标准的隐式转换.pv = const_castvoid*pcv;//OK, const_cast显式转换.pcc = pc; // OK; 隐式转换到const char*pcc = pi; // 错误,没有标准的隐式转换.pcc = reinterpret_castchar*(pi); //必须使用reinterp
您可能关注的文档
- 5、安全生产报告处理制度.doc
- 5、机井房.doc
- 5、汉语词类教学-代词.ppt
- 5包公审驴.ppt
- 5分钟说地理.ppt
- 5单元整理复习提纲【姚】.doc
- 5变态心理学第五讲.ppt
- 5命题与推理.ppt
- 5客户异议处理技巧.ppt
- 5心理咨询师心理测验技能课程知识要点.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 四年级音乐下册欣赏《包粽子》《欢乐的夜晚》教案苏教版.pdf VIP
- 电镀加工项目可行性研究报告.docx VIP
- 第三单元第二章植物体内的物质与能量变化【速记清单】.docx
- 高大模板工程施工与支撑体系专项方案.docx VIP
- 春节后复工复产方案.doc VIP
- 中建协QC汇编_3-福州建工-提高大面积冷库墙体保温层施工质量——福州建工(集团)总公司.doc VIP
- Q SHB 0003-2016_全自动滚筒洗衣机玻璃观察窗.pdf VIP
- 电力工程安全协议书.doc VIP
- 2019年青海省中考数学试卷【原卷版】材料.pdf VIP
- AI驱动的组织重构与业务重构:绚星智慧科技AI实践白皮书.docx VIP
原创力文档

文档评论(0)