在C++中,可以使用类型转换运算符或者C++标准库中的static_cast
、dynamic_cast
、const_cast
和reinterpret_cast
进行类型转换。以下是各种类型转换的示例:
- 使用类型转换运算符:
int intValue = https://www.yisu.com/ask/42;>(intValue); // 将整数值转换为浮点值
- 使用
static_cast
:
int intValue = https://www.yisu.com/ask/42;>(intValue); // 将整数值转换为浮点值 class Base {}; class Derived : public Base {}; Derived* derivedPtr = new Derived(); Base* basePtr = static_cast(derivedPtr); // 将派生类指针转换为基类指针
- 使用
dynamic_cast
:
class Base { public: virtual ~Base() {} }; class Derived : public Base {}; Base* basePtr = new Derived(); Derived* derivedPtr = dynamic_cast(basePtr); // 将基类指针转换为派生类指针,如果转换失败,返回空指针
- 使用
const_cast
:
const int constIntValue = https://www.yisu.com/ask/42;>(constIntValue); // 将常量整数值转换为非常量整数值 const double* doublePtr = &constDoubleValue; double* nonConstPtr = const_cast(doublePtr); // 将指向常量的指针转换为指向非常量的指针,注意这样做可能导致未定义行为
- 使用
reinterpret_cast
:
int intValue = https://www.yisu.com/ask/42;>(intPtr); // 将整数指针转换为字符指针 float floatValue = https://www.yisu.com/ask/3.14f;>(&floatValue); // 将浮点数指针转换为整数指针
请注意,在使用类型转换时要小心,确保转换是安全的,否则可能导致未定义行为。