如何解决在C ++中,默认情况下,istringstreams或stringstreams通常初始化为什么?
我有一个如下类,并且它具有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类型的extract_text可以初始化为什么?
在这里您可以找到一个构造函数列表,选择一个:std::basic_istringstream::basic_istringstream。例如,您可以使用列表上的std::string
,(3)对其进行初始化:
使用str的副本作为基础字符串设备的初始内容。底层basic_stringbuf对象构造为basic_stringbuf
(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
{
}
};
在C ++中,默认情况下,istringstreams或stringstreams通常会初始化为什么?
默认构造函数(相同的链接):
默认构造函数。使用默认的打开模式构造新的基础字符串设备
如果这是您想要的,则不必提供初始化程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。