条件运算符中的返回值

fud*_*din 2 c c++ conditional-operator

我试图通过使用条件运算符来返回值true或false,具体取决于条件,但是我收到了错误.这是我的代码,

bool isEmpty()
{
    int listSize = Node::size();
    listSize > 0 ? return (true) : return (false);
    return false;
}
Run Code Online (Sandbox Code Playgroud)

这是错误,

error C2107: illegal index, indirection not allowed
Run Code Online (Sandbox Code Playgroud)

现在我被困在这里.我不明白这一点.我认为它应该是正确的.请指导我.谢谢

Ker*_* SB 13

您只能将表达式*作为三元条件语句的操作数,而不是语句.通常的说法是:

return listSize > 0 ? true : false;
Run Code Online (Sandbox Code Playgroud)

甚至更好,

return listSize > 0;
Run Code Online (Sandbox Code Playgroud)

甚至更好,

bool isEmpty() { return Node::size() > 0; }
Run Code Online (Sandbox Code Playgroud)


*)由于您将此标记为C和C++,因此请注意两种语言中允许的表达式之间存在细微差别.


Oli*_*rth 5

三元运算符(?:)不是为此而设计的.您有语法错误.

试试这个:

return (listSize > 0);
Run Code Online (Sandbox Code Playgroud)