相关疑难解决方法(0)

运算符重载的基本规则和习惯用法是什么?

注意:答案是按照特定的顺序给出的,但由于许多用户根据投票而不是给出的时间对答案进行排序,因此这里是答案索引,它们是最有意义的顺序:

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ operator-overloading operators c++-faq

2074
推荐指数
8
解决办法
88万
查看次数

您可以在枚举类中使用按位运算符而不进行强制转换吗?

int我喜欢使用枚举类,但有时我将它们用作标志,如果我想使用按位运算符,我必须不断地进行转换。有没有办法在不铸造的情况下做到这一点?我认为您无法为它们定义运算符?

如果我有采用枚举类的函数,我必须这样做吗?

enum class Flags { FLAG1, FLAG2, FLAG3};

void setFlags(Flags flags){}

int main()
{
      setFlags((Flags)((int)Flags::FLAG1 | (int)Flags::FLAG2 | (int)Flags::FLAG3));
}
Run Code Online (Sandbox Code Playgroud)

c++ enum-class

7
推荐指数
1
解决办法
3226
查看次数