我正在使用 Visual Studio 2012 编译此 C++ 代码。我注意到我可以在没有范围解析运算符 (::) 的情况下使用枚举值。
这是我的代码在 int main() 之外的重要部分:
enum SortMethod
{
BY_NAME,
BY_WEIGHT
};
然后在 int main() 我使用以下内容:
int main()
{
LinkedList* list = new LinkedList();
/*
Insert values into linked list, in sorted order.
*/
list->print( BY_NAME );
cout << endl << endl;
list->print( BY_WEIGHT );
return 0;
}
为什么这些函数调用有效?print() 函数接受一个 SortMethod 参数。所以我想我需要做以下事情:
SortMethod sortByName = BY_NAME;
list->print( sortByName );
但事实证明,我可以简单地在参数列表中使用“BY_NAME”。这是特定于编译器的吗?