我正在尝试使用 reinterpret_cast 将指针转换为另一种类型
class MyClassA
{
int x;
int y;
public:
MyClassA();
~MyClassA();
};
class MyClassB
{
int x;
int y;
public:
MyClassB();
~MyClassB();
};
例如,如果我将指向 MyClassA 的指针转换为 MyClassB,那么使用 reinterpret_cast 这种转换是否有效?代码可移植性如何?
而且,正如我指出的:
(5.2.10/4) A pointer can be explicitly converted to any integral type large enough to hold it.
这是否意味着任何指针,例如 MyClassA*
只能转换为 int* 指针?如果我是正确的?
最佳答案
(5.2.10/4) A pointer can be explicitly converted to any integral type large enough to hold it.
这意味着 int*
到 int
。指针不是整数类型。
转换不相关类型的指针是个坏消息,不应该这样做。它可能 可以工作,但不可移植。
虽然继承会起作用。让类型从基类继承!
关于c++ - 使用重新解释指向整数的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459219/