Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++11 在C+中使用三元运算符可以吗+;溪流?_C++11_Ternary Operator_Cout - Fatal编程技术网

C++11 在C+中使用三元运算符可以吗+;溪流?

C++11 在C+中使用三元运算符可以吗+;溪流?,c++11,ternary-operator,cout,C++11,Ternary Operator,Cout,以下代码: #include <iostream> using namespace std; struct A{int number=10;}; int main() { A* a = new A(); cout<<"A val: "<< a==nullptr?"":a->number<<endl; } #包括 使用名称空间std; 结构A{int number=10;}; int main() { A*A=新的A(); co

以下代码:

#include <iostream>
using namespace std;
struct A{int number=10;};

int main()
{
   A* a = new A();
   cout<<"A val: "<< a==nullptr?"":a->number<<endl;
}
#包括
使用名称空间std;
结构A{int number=10;};
int main()
{
A*A=新的A();

cout您首先会发现运算符
:是的,您可以将三元运算符用于
std::ostream
,但是请注意运算符优先级。如果要这样做,您需要执行以下操作:

cout << "My name is: " << (my != nullptr ? my->name() : "don't know") << '\n';

cout三值运算符对大多数人来说都是如此。我的建议是:如果你不能完全确定它的作用,就避免使用它:你的同事会感谢你。我发现,当问题是关于三值运算符时,首先关注左移运算符有点误导。但最终你是对的:

cout << "My name is: " << (my != nullptr ? my->name() : "don't know") << '\n';