gpt4 book ai didi

c++ - 有没有办法让 operator= 用于枚举?

转载 作者:太空狗 更新时间:2023-10-29 23:39:22 26 4
gpt4 key购买 nike

我有一个枚举,但我想要一个赋值运算符,以便它能够分配一个不是原始枚举的类型。例如

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com