C++;“为什么?”;istringstream“;在名称后使用括号? 我学习了一些C++,我学到了从字符串和整数转换的部分。我在看代码,上面写着: istringstream converter(stringVariable);
如果“converter”是一个变量名,那么为什么在它后面使用()呢?括号中包含了一个变量名的参数 此初始化语法适用于具有具有参数的构造函数的所有类型。这是标准C++对象初始化语法之一,尽管要注意:在某些情况下,类似的构造可以被解析为函数声明,即所谓的函数。那么这个C++;“为什么?”;istringstream“;在名称后使用括号? 我学习了一些C++,我学到了从字符串和整数转换的部分。我在看代码,上面写着: istringstream converter(stringVariable);,c++,C++,如果“converter”是一个变量名,那么为什么在它后面使用()呢?括号中包含了一个变量名的参数 此初始化语法适用于具有具有参数的构造函数的所有类型。这是标准C++对象初始化语法之一,尽管要注意:在某些情况下,类似的构造可以被解析为函数声明,即所谓的函数。那么这个 将被解析为函数,即使 STD::ISTECHANSWATEST/CODE>有一个不接受参数的构造函数。< /P> < P>因为您调用了 ItestIngs实例。< /P> < P>请注意,在今天的C++(C++ 11)版本中,最好写
将被解析为函数,即使
istringstream converter{stringVariable};
这就是所谓的“统一初始化”语法,它的工作原理与带括号的语法基本相同,但决不能被误认为是函数声明(没有“最麻烦的解析”)。您认为它会是什么样子?这不仅仅是
istringstream
,它几乎是一切。这叫做直接初始化。哦,我想你应该说“istringstream converter=new istringstream(stringVariable);”谢谢你的帮助@AlexKillian不,那不会编译,new
返回一个指针。C++不是java,你不必总是调用新的:- AlexKillian,事实上,你应该几乎不使用<代码>新< /C> >,当istringstream mystream();
istringstream converter{stringVariable};