C++ 设置一个structs';值为五种可能的值之一
我的类的结构需要是五个值之一。 现在看起来是这样的:C++ 设置一个structs';值为五种可能的值之一,c++,struct,C++,Struct,我的类的结构需要是五个值之一。 现在看起来是这样的: // Bar.h struct Foo{ string value; } class Bar{ Bar(); } // Bar.cpp Bar::Bar(//magic here){ // or here } 我想将Foo设置为构造函数中五个值/字符串中的一个(VALUEA,VALUEB,…),并且只允许这五个值/字符串。如果类型是字符串或bool,这并不重要,因为我只是检查Foo的值==x 如何强制程序员使用其中一
// Bar.h
struct Foo{
string value;
}
class Bar{
Bar();
}
// Bar.cpp
Bar::Bar(//magic here){
// or here
}
我想将Foo设置为构造函数中五个值/字符串中的一个(VALUEA,VALUEB,…),并且只允许这五个值/字符串。如果类型是字符串或bool,这并不重要,因为我只是检查Foo的值==x
如何强制程序员使用其中一种类型?使用
枚举类,而不是结构
enum class Foo {
ValueA,
ValueB,
ValueC,
ValueD,
ValueE
};
使用枚举类
,而不是结构
enum class Foo {
ValueA,
ValueB,
ValueC,
ValueD,
ValueE
};
因此,您希望基于Bar
的构造函数的值是5个值之一,然后将Foo
成员设置为该值?如果参数不可接受,则从构造函数中抛出异常。@JesperJuhl:然后呢?您将如何“处理”这样的异常?捕获中有什么?如果您真的只想在运行时检测这样的错误(这在这里是非常可疑的),然后一个assert
会更好。因此,您希望基于Bar
的构造函数的值是5个值之一,然后将Foo
成员设置为该值?如果参数不可接受,则从构造函数中抛出一个异常。@JesperJuhl:然后呢?您将如何“处理”这样的异常?捕获中有什么?如果您真的只想在运行时检测这样的错误(这在这里是非常可疑的),那么断言将更可取。谢谢,这就是我要找的。谢谢,这就是我要找的。