c++ - istringstreams 或 stringstreams 通常在 C++ 中默认初始化为什么?
问题描述
我有一个如下的类,它有一个istringstream
类型的成员。在类的构造函数中,可以将istringstream
类型extracted_text
初始化为什么?
class user_input
{
std::string input_text;
std::istringstream extracted_text;
public:
user_input()
{
input_text="NULL";
// want to know what to initialize extracted_text with here
}
}
解决方案
// want to know what to initialize extracted_text with here
你不能在这里这样做。在执行构造函数主体之前初始化类成员。如果要初始化成员,则需要在构造函数运行之前执行此操作。
istringstream 类型extracted_text 可以初始化为什么?
在这里您可以找到构造函数列表,选择一个:std::basic_istringstream::basic_istringstream。例如,您可以使用std::string
列表中的 , (3) 对其进行初始化:
使用 str 的副本作为底层字符串设备的初始内容。底层 basic_stringbuf 对象构造为 basic_stringbuf<Char,Traits,Allocator>(str, mode | std::ios_base::in)。
class user_input
{
std::string input_text;
std::istringstream extracted_text;
public:
user_input() : input_text("NULL"),extracted_text("hello world")
// ^^ member initializer list
{
}
};
istringstreams 或 stringstreams 通常在 C++ 中默认初始化为什么?
默认构造函数(相同链接):
默认构造函数。使用默认打开模式构造新的底层字符串设备
如果这是您想要的,则不必提供初始化程序。
推荐阅读
- r - R按变量名引用过滤列
- testing - Heroku tests started failing overnight? (cannot configure sandbox)
- reactjs - MUI dark theme isn't applied to the background
- node.js - 无法访问 express-handlebars 中的 res.locals.user 变量
- dapper - Dapper 区分返回值和结果集
- r - 根据不同的比例对图的节点进行着色
- mesh - CGAL 在 2D 排列中因插入操作而失败
- static - 如何对整个 AOSP 目录进行静态分析和覆盖?
- javascript - 使用窗口滚动将其更改为固定时保持元素位置
- scala - Why "ambiguous reference to overloaded definition" for methods with different signatures?