c++标准程序库 第二章之型别转换
2019-07-05 17:38
1961 查看
型别转换操作符(Type Conversion Operators)
1、static_cast
将一个值以符合逻辑的方式转型
如:
float x; cout<<static_cast<int>(x);//float转换为int
2、dynamic_cast
多态型别向下转型为实际静态型别。。。基类–>派生类。这是唯一在执行期进行校验的转型动作。如:
class Car; class Cabriolet:public Car{ ...}; class Limousine:public Car{ ... }; void f(Car *cp) { Carbriolet* p=dynamic_cast<Cabriolet*>cp; if(p==NULL) { //did not refer to an object of type Cabriolet } }
当参数是个reference,而且型别转换失败时,dynamic_cast会丢出一个bad_cast异常。应避免这种“程序行为取决于具体型别”的写法
3、const_cat
设定或去除型别的常数性(constness),亦可去除volatile饰词,除此之外,不允许任何转换
4、reinterpret_cast
此操作符的行为由实际编译器定义
这些操作符都只接收一个参数
static_cast<Fraction>(15,100);//错误
将15和100转换为分数的正确做法是:
Fraction(15,100);//
相关文章推荐
- 第二章【数据类型转换、运算符、方法入门】
- 【制表符和空格的转换】The C Programming Language 程序研究 第一部分第二章
- 向量abc转换为cba(如何交换非邻接内存块的问题) 编程珠玑 第二章 问题 5
- 第二章、2.简单数据类型转换和类封装
- 【C++标准程序库】第二章
- JAVA第二章基础知识:注释,标识符,数据类型常量变量,基本数据类型转换。--------------(Make A little EvProgresseryday )
- 《Visual C# 最佳实践》第二章 控制语句 (二):类型转换
- C语言基础教程读书笔记2(第二章常量、变量、类型转换)
- 程序员编程艺术:第二章、字符串是否包含及匹配/查找/转换/拷贝问题
- 《Visual C# 最佳实践》第二章 控制语句 (二):类型转换
- 第二章 SQL 编程 , 类型转换 , if else , 上机练习
- more effective c++第二章读书笔记:c++的运算符,运算符转换,前缀自增和后缀自增,operatpr new和operator delete.
- 第二章字符串处理与进制转换
- 《C++标准程序库》第二章-C++及其标准程序库简介
- 程序员编程艺术:第二章、字符串是否包含及匹配/查找/转换/拷贝问题
- 程序员编程艺术:第二章、字符串是否包含及匹配/查找/转换/拷贝问题
- c++ primer 第五版学习笔记-第二章-类型转换
- 带你走进java-第二章.变量类型转换,运算符,流程控制(上)
- 马士兵J2SE-第二章-J2SE基础语法-标识符、关键字、数据类型转换
- 程序员编程艺术:第二章、字符串是否包含及匹配/查找/转换/拷贝问题