要注意运算符的优先级,真的很重要!
但大家都很少记住运算符的优先级,这时候括号作用就很明显了!
再来说问题: 在 show 函数中,你使用了 (image > 0) ? "+" : "" 来根据虚部的正负输出符号。但由于运算符优先级的关系,表达式被解析为 image > (0 ? "+" : ""),这不是你想要的结果。应该使用括号明确指定条件运算符的优先级。
image会和cout<<先结合输出,再进行后面的判断,会出现错误!
正确的应该是:
先对三目运算符进行操作,再与前面结合进行输出!