在C++中,类型转换主要有以下几种方法:
- 静态转换:使用
static_cast
关键字进行类型转换,适用于基本数据类型之间的转换,以及具有继承关系的类之间的转换。
int a = 10;
double b = static_cast<double>(a);
- 动态转换:使用
dynamic_cast
关键字进行类型转换,用于类之间的多态类型转换,只能用于具有虚函数的类。
class Base {
public:
virtual void func() {}
};
class Derived : public Base {};
Base* basePtr = new Derived;
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);
- 重新解释转换:使用
reinterpret_cast
关键字进行类型转换,不进行类型检查,直接将一个指针或引用转换为另一种类型。
int* ptr = new int(10);
char* charPtr = reinterpret_cast<char*>(ptr);
- const转换:使用
const_cast
关键字进行类型转换,用于去除const属性,只能用于指针或引用。
const int a = 10;
int& b = const_cast<int&>(a);
- 旧式的C风格转换:使用C语言的风格进行类型转换,不建议使用,因为不安全。
int a = 10;
double b = (double)a;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1002728.html