【发布时间】:2010-06-22 16:15:02
【问题描述】:
基本上,我有一个链接列表,它实现了一个display()函数,它简单地循环遍历元素并打印出它们的值。
我想这样做:
void List::display( std::string type )
{
switch(type)
{
// Do stuff...
编译器立即抱怨。我的老师说这是因为在编译时字符串是未知的,导致错误。这个解释听起来有点可疑,但他建议我使用枚举。所以我研究了它,它说枚举的显式字符串不起作用。类似的东西
class List
{
enum type
{
HORIZONTAL = "inline"
VERTICAL = "normal"
}
然后,我真的不知道。
enum type 是 List 类的一部分,也是函数 display() 的一部分。这再次看起来像一个非常糟糕的解决方案。不过,我想知道这种方法是否可行。
如何在调用 display() 的同时在 main 函数中设置枚举?像这样
int main( void )
{
display("normal");
当然,更简单的方法是非常受欢迎的。一般来说,如果可能的话,我如何声明/将枚举传递给函数?
【问题讨论】: