假设我在命名空间A
下有一个类AAA
,其定义如下:
namespace AAA {
class A
{
int x;
std::vector<double> y;
A* ptr;
};
}
我有另一个类B
具有与以下相同的结构,但它位于不同的名称空间BBB
下,
namespace BBB {
class B
{
int x;
std::vector<double> y;
B* ptr;
};
}
我知道这样做的正确方法是首先只有一个定义,但现在让我们假设我们无法改变有AAA::A
类和BBB::B
课程。有没有办法将A
对象转换为B
对象?
答案 0 :(得分:3)
无论如何都没有安全的转换。最好的是static_assert(sizeof(A)== sizeof(B),“Different Size”),然后是勇敢的reinterpret_cast。