【发布时间】:2013-09-16 06:05:42
【问题描述】:
我有一个将数据输出到 ostream 对象的函数,以及一个以完全相同的格式从 istream 对象初始化类的构造函数。即
std::ostream& operator<<(std::ostream &os, const Matrix &m) {
// Output to os
}
然后
Matrix::Matrix(std::istream& in) {
// Read from in to construct the object
}
那么如何将第一个函数的输出推送到第二个函数的输入?我尝试了很多东西,主要是反复试验,但完全迷失了(即甚至不确定要使用哪种流类型)。谢谢
【问题讨论】:
-
这取决于您传递的数据类型。如果您将其输出到屏幕上,您可能会将其转换为某种字符串,因此您将使用字符串流。
-
它是一种人类可读的对象格式,也可用于初始化新对象。 Stringstream 听起来是个好主意
-
你到底为什么要将一个结果推到另一个?只需创建一个复制构造函数!
-
哈哈,这个不是我设计的。这个想法是有一个可以被保存到文件的可理解的格式。为了测试,我只想暂时绕过所有处理文件的工作。还有一个复制构造函数将用于复制。