gpt4 book ai didi

c++ - Java 和 C++11 中的枚举方法?

转载 作者:行者123 更新时间:2023-11-28 06:42:59 25 4
gpt4 key购买 nike

考虑以下 Java 枚举类:

package com.gousslegend.deepov;

public enum Color
{
WHITE, BLACK;

private Color opposite;

static
{
WHITE.opposite = BLACK;
BLACK.opposite = WHITE;
}

public Color getOppositeColor()
{
return opposite;
}
}
  • 如何使用 C++11 实现相同的目的?
  • 是否可以使用 C++11 的枚举方法?
  • 我应该使用 C++ 将我的枚举放在单独的类/文件中吗?

谢谢

最佳答案

How can I achieve the same thing with C++11?

在 C++ 中,您最好定义一个 enum 以及一个独立的函数:

enum Color {BLACK, WHITE};
Color getOppositeColor(Color c) {
static Color opposite[] = {WHITE, BLACK};
return opposite[c];
}

如果您打算对 Java 进行精确建模,请创建一个具有两个静态成员 BLACKWHITE 的类,并使用它代替 enum .但是,使用将受到限制:例如,您将无法在 switch 情况下使用您的 enum 值。

Is is possible to have enum methods with C++11?

没有

Should I put my enum in a separate class/file with C++?

你应该把enum定义和一个函数原型(prototype)放在一个header中;该函数的实现放在一个单独的 C++ 文件中。

关于c++ - Java 和 C++11 中的枚举方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25587717/

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