首页 > 解决方案 > reinterpret_cast - 整数、枚举、指针或指向成员类型的表达式可以转换为它自己的类型

问题描述

https://en.cppreference.com/w/cpp/language/reinterpret_cast

整数、枚举、指针或指向成员的指针类型的表达式可以转换为它自己的类型。结果值与表达式的值相同。(C++11 起)

为什么我应该对将某些东西转换为自己的类型感兴趣?这对我来说是因为我想将 int 转换为 int。

请纠正我。

标签: c++c++11

解决方案


因为也许你不知道它是否是“它自己的类型”。也许你在一个模板函数中,你正在调用某个函数,你需要它的返回值reinterpret_cast才能成为模板参数T。因此,该函数可以返回 type 的值T

举一个更有用的例子,假设你得到了一个 type 的对象T。然后你调用一个应该返回某种指针的函数。而且您想将此指针转换为 achar*并做一些低级的操作,也许将其传递给memcpy或其他东西。

那么,如果函数返回 a 会发生什么char*?也就是说,它返回了一个字符串。你还需要reinterpret_cast<char*>工作。


推荐阅读