我试图通过使用条件运算符来根据条件返回值true或false,但是我收到了错误。这是我的代码,
bool isEmpty()
{
int listSize = Node::size();
listSize > 0 ? return (true) : return (false);
return false;
}
这是错误,
error C2107: illegal index, indirection not allowed
现在我被困在这里。我不明白这一点。我认为它应该是正确的。请指导我。感谢
答案 0 :(得分:13)
您只能将表达式*作为三元条件语句的操作数,而不是语句。通常的说法是:
return listSize > 0 ? true : false;
甚至更好,
return listSize > 0;
甚至更好,
bool isEmpty() { return Node::size() > 0; }
*)由于您将此标记为C和C ++,因此请知道两种语言中允许的表达式之间存在subtle difference。
答案 1 :(得分:5)
三元运算符(?:
)的设计并非如此。您有语法错误。
请改为尝试:
return (listSize > 0);
答案 2 :(得分:2)
除非你有更深层次的理由这样做,否则我应该return (listSize > 0);
。