46、C++ 类型转换与标准库入门

C++ 类型转换与标准库入门

1. C++ 新式类型转换

在 C++ 中,除了可以使用 ANSI C 风格的类型转换,还提供了几种 C 语言不支持的类型转换运算符,具体如下表所示:
| 运算符 | 描述 |
| — | — |
| dynamic_cast | 仅当作为操作数的对象是预期类型时,才返回有效的对象指针。 |
| static_cast | 可用于显式执行任何隐式类型转换,类似于 ANSI C 类型转换。 |
| const_cast | 可用于移除类的任何 const、volatile 或未对齐属性。 |
| reinterpret_cast | 允许将任何指针类型转换为其他任何指针类型;也允许将任何整数类型转换为指针类型,反之亦然。 |

以下是一个简单的动态内存分配和类型转换的示例代码:

void* pVoid = new char[255];
char* pCast = (char*)pVoid;     // cast void* to char*
delete [] pCast;
2. 类层次结构与多态

在 C++ 中,使用继承和多态,如果从包含虚函数的基类派生一个类,可以使用指向该基类的指针来调用派生对象中继承的虚函数。在类层次结构中,派生对象可以安全地向上转换为层次结构树中的任何继承对象类型。

例如,有一个简单的形状类层次结构, CShape CSquare 的基类, CSquare

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值