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';