gpt4 book ai didi

c++ - switch 语句和对象隐式 int 转换

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:38 31 4
gpt4 key购买 nike

在 C++ 中,直接在隐式转换为 int 的对象上使用 switch 语句是否合法/正确?而不是使用返回对象标记的方法。

class Action
{
public:
enum EType { action1, action2, action3};
operator int() const { return mType; }
private:
EType mType;
/* ... */
}

int main()
{
Action a = /* ... */
switch(a)
{
case Action::EType::action1:
/* ... */
break;
case Action::EType::action2:
/* ... */
}
}

最佳答案

是的,你可以做到。参见 [stmt.switch]/2:

The condition shall be of integral type, enumeration type, or class type. If of class type, the condition is contextually implicitly converted (Clause 7) to an integral or enumeration type.

关于c++ - switch 语句和对象隐式 int 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56552277/

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