我有一个C++头文件,在公共部分声明了枚举:
enum Button {A, B, C, D};
Run Code Online (Sandbox Code Playgroud)
和一个地图,使用该枚举作为私有部分中的模板参数:
map<Button, int> bindings;
Run Code Online (Sandbox Code Playgroud)
如果不是因为我喜欢在公共部分之前定义私有部分,那么这将完美地工作,因此编译器不会将Button识别为符号.我已经在地图声明工作之前检查并移动了Button声明.
这对我来说似乎是一个巨大的限制,有没有我可以使用的解决方法,而不必翻转我的头文件的公共和私人部分?
我有枚举,用字符串定义和初始化如下
public enum Code {
OK( "OK" ),
ERROR_FILE_NOT_FOUND ( "FILE_NOT_FOUND xxxxxxxxx" ),
ERROR_AUTHENTICATION_FAILURE("AUTHENTICATION_FAILURE xxxxxxx" ),
ERROR_AUTHORIZATION_FAILURE("AUTHORIZATION_FAILURE xxxxxxx" ),
ERROR_DUPLICATE_DEF("DUPLICATE_DEF xxxxxxx"),
ERROR("ERROR xxxxxx")
private final String errorText;
private Code(String error) {
errorText = error;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我有枚举值,ERROR_FILE_NOT_FOUND如何获得相应的字符串值"FILE_NOT_FOUNDxxxxxxxxx"?
谢谢,
这是源代码:
#include <stdio.h>
enum coordinate_type{ RECTANGULAR = 1,POLAR };
int main(void)
{
int RECTANGULAR;
printf("%d %d\n",RECTANGULAR,POLAR);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么结果如下:
3 2
Run Code Online (Sandbox Code Playgroud) 我有一个枚举的原始值数组。在Swift代码的一行中,是否可以从该原始值数组中创建一个枚举数组?
我在这里试图获取并在类对象中设置枚举,但不知道如何做到这一点.这就是我到目前为止所拥有的.我已经抬起头来,我可以看到一些看起来太复杂的例子让我无法理解.有什么帮助吗?
public class EnumExample {
public static class Task {
private String _task;
public enum Priority {
ZERO (0), MAYBE (1), LOW (2), MEDIUM (3), HIGH (4), EXTREME (5);
private int _priority;
Priority() {
_priority = 0;
// Does this set set the default priority level to 0??
}
Priority(int priority) {
_priority = priority;
// This is where I can set the priority level of this task??
}
public int getPriority() {
return _priority;
}
public void setPriority(int priority) …
Run Code Online (Sandbox Code Playgroud) 我有这个枚举类:
public enum IconImageTag {
None("val1"),
USD("val2"),
EURO("val3");
}
Run Code Online (Sandbox Code Playgroud)
给出一个代表一个字符串"value"
(比如说"val"1)
如何将其转换为相应的枚举?
更新
我试过这个.为什么从ctor访问静态成员是非法的?我收到一个错误.
private final String value;
private static final Map<String, IconImageTag> stringToEnumMap = new HashMap<>();
IconImageTag(String value) {
this.value = value;
stringToEnumMap.put(value, this);
}
Run Code Online (Sandbox Code Playgroud) 在c ++ 11中,在类中定义的引用枚举的c ++"方式"(与c中使用的方式相反)是什么?例如
foo.BAR vs Foo::States::BAR
Run Code Online (Sandbox Code Playgroud)
我总是使用后者,但在某些地方,前者可能具有同样的意义.
我所做的就是将这些字符串分配给enumdata类型值,但它不起作用.我已将字符串分配给C中的枚举.我究竟做错了什么?
#include <stdio.h>
enum day{monday,tuesday,wednesday};
int main()
{
enum day pres;
int n,ab;
scanf("%s",&pres);
scanf("%d",&ab);
n=((ab%7)+pres);
print("%d",n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)