我有一个枚举,但我想要一个赋值运算符,以便它能够分配一个不是原始枚举的类型。例如
enum class X : int
{
A, B, C, D
}
enum class Y : char
{
A, B, C, D
}
Y& operator=(Y& lhs, X rhs)
{
return Y = static_cast<Y>(X);
}
但是我得到一个 'operator =' must be a non-static member
。有没有办法做到这一点?
最佳答案
你不能,因为正如错误消息告诉你的那样,operator=
只能是一个非静态成员函数,而枚举不能有成员。如果您真的希望能够从不同的枚举中进行分配,也许您应该将 Y
设为一个类。另一种可能性是编写辅助函数来执行分配。
关于c++ - 有没有办法让 operator= 用于枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412256/