我想知道将一个类放到二元相等的类是否安全,但是不是同一个类。
背景:我想做一些操作员魔法,而不是"污染"原班(这里是A)。
class A
{
public:
int x;
virtual ~A() = default;
};
class B : public A
{
public:
B(int x) { this->x = x; }
bool operator==(const B& b)
{
return x == b.x;
}
};
A a;
a.x = 1;
B* b = (B*)&a;
*b == B(1);
这适用于我的所有系统,但安全/便携吗?