正在阅读此解决方案:
https://stackoverflow.com/a/42654357/8408220
(问题“如何读取整数直到行尾?”)
我不知道这行在做什么:
istringstream is( line );
我知道istringstream是一个类,但是“是”部分是什么?
正在这样做吗?
istringstream is = new istringstream(line);
?
答案 0 :(得分:6)
printf
是名为istringstream is( line );
的自动分配的istringstream
的定义,并用is
的内容初始化。
line
将无法编译。 istringstream is = new istringstream(line);
动态分配并构造一个新对象,并返回指向它的指针。您只能将一个指针分配给一个指针。您可以
new
,并使istringstream * is = new istringstream(line);
指向is
的指针,但是现在您必须处理动态分配的管理。确保您
istringstream
当您不再需要它时。
也就是说,更喜欢自动分配,并在进行动态路由之前先给Why should C++ programmers minimize use of 'new'?读一读。