#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
void test01()
{
//static_cast在C++中用于将表达式的值转换为指定的类型,但没有运行时类型检查来保证转换的安全性。
//主要有以下用法:
//(1)用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。
//(2)用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。
//(3)把空指针转换成目标类型的空指针。
//(4)把任何类型的表达式转换成void类型。
//注意:static_cast不能转换掉expression的const、volatile、或者__unaligned属性。
//1. 基本数据类型转换
char con = 'A';
double temp = static_cast<double>(con); //语法:stastic_cast<目标类型>(变量)
cout << temp << endl;
//2. 父类和子类之间的指针转换
class Base {};
class Son : public Base {};
class Dog {};
cout << "size of Base = " << sizeof(Base) << endl;
cout << "size of Son = " << sizeof(Son) << endl;
Base* pBase = NULL;
Son* pSon = NULL;
Dog* pDog = NULL;
//父类转子类,自下向上类型,不安全
C++静态转换和动态转换
最新推荐文章于 2024-07-29 00:23:22 发布