Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/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++;“为什么?”;istringstream“;在名称后使用括号? 我学习了一些C++,我学到了从字符串和整数转换的部分。我在看代码,上面写着: istringstream converter(stringVariable);_C++ - Fatal编程技术网

C++;“为什么?”;istringstream“;在名称后使用括号? 我学习了一些C++,我学到了从字符串和整数转换的部分。我在看代码,上面写着: istringstream converter(stringVariable);

C++;“为什么?”;istringstream“;在名称后使用括号? 我学习了一些C++,我学到了从字符串和整数转换的部分。我在看代码,上面写着: istringstream converter(stringVariable);,c++,C++,如果“converter”是一个变量名,那么为什么在它后面使用()呢?括号中包含了一个变量名的参数 此初始化语法适用于具有具有参数的构造函数的所有类型。这是标准C++对象初始化语法之一,尽管要注意:在某些情况下,类似的构造可以被解析为函数声明,即所谓的函数。那么这个 将被解析为函数,即使 STD::ISTECHANSWATEST/CODE>有一个不接受参数的构造函数。< /P> < P>因为您调用了 ItestIngs实例。< /P> < P>请注意,在今天的C++(C++ 11)版本中,最好写

如果“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> >,当 STD::MaMaIOLION/<代码>到达时,甚至更少。
istringstream mystream();
istringstream converter{stringVariable};