当前位置 : 主页 > 编程语言 > c++ >

c – 这一行发生了什么:istringstream是(line);

来源:互联网 收集:自由互联 发布时间:2021-06-23
正在阅读此解决方案: https://stackoverflow.com/a/42654357/8408220 (对于“如何读取整数直到行尾?”的问题) 我不明白这条线在做什么: istringstream is( line ); 我知道istringstream是一个类,但是什么
正在阅读此解决方案:

https://stackoverflow.com/a/42654357/8408220

(对于“如何读取整数直到行尾?”的问题)

我不明白这条线在做什么:

istringstream is( line );

我知道istringstream是一个类,但是什么是“是”部分?

它是这样做的:

istringstream is = new istringstream(line);

istringstream is( line );

是一个自动分配的istringstream的定义,命名是用行的内容初始化的.

istringstream is = new istringstream(line);

不会编译. new动态分配和构造一个新对象并返回一个指向它的指针.您只能指定指针指针.你可以

istringstream * is = new istringstream(line);

而make是指向istringstream的指针,但现在你必须处理动态分配的管理.确保你

delete is;

当你不再需要它时.

也就是说,更喜欢自动分配,并在进入动态路线之前给予Why should C++ programmers minimize use of ‘new’?读数.

网友评论