我希望有人可以帮助我解决在开关盒中使用枚举类的错误。尝试使用导线类型在开关中选择路径。 这是我的代码:
enum class TraverseType { PREORDER, INORDER, POSTORDER, BREADTHORDER };
private:
TraverseType traverseOrder;
public:
friend ostream& operator<<(ostream& out, const BTree& tree)
{
TraverseType type = traverseOrder;//error
switch (type)
{
case TraverseType::PREORDER:
{
break;
}
case TraverseType::INORDER:
{
break;
}
case TraverseType::POSTORDER:
{
break;
}
case TraverseType::BREADTHORDER:
{
break;
}
default:
{
break;
}
}
return out;
}`
我得到的错误是: 错误C2440“正在初始化”:无法从“未知”转换为“ TraverseType”,并且我已经尝试了数小时的解决方案。如果您需要更多代码,请告诉我。谢谢您的提前帮助
答案 0 :(得分:0)
您的朋友功能需要引用类对象才能访问其成员traverseOrder。
您的班级名字是什么?如果它是BTree,则使用其引用访问私有成员。
enum class TraverseType { PREORDER, INORDER, POSTORDER, BREADTHORDER };
private:
TraverseType traverseOrder;
public:
friend ostream& operator<<(ostream& out, const BTree& tree)
{
TraverseType type = tree.traverseOrder;
switch (type)