1 - 使用提取运算符来提取某些数据不是来自文件而是来自大而复杂的类层次结构听起来是否正确?
class ComplexInterface
{
//...
};
struct EXTRACTED_DATA
{
//...
friend ComplexInterface& operator>>(const ComplexInterface& interface, EXTRACTED_DATA& extracted)
{
extracted.m_member = interface.someAccessor().getData();
}
};
简单地将其作为成员方法(void extractFromComplexInterface(const ComplxInterface&)
)?
有更好的解决方案吗?
2 - 是否可以将此提取作为常规流操作来处理? ComplexInterface
将成为istream
,实现一些神奇的功能,在其中它会说“我将发送此数据,然后发送此数据......”。然后,EXTRACTED_DATA可以使用已定义为从文件流中读取的常规提取运算符(friend istream& operator>>(istream&, EXTRACTED_DATA&)
)。
如果可以,怎么做?