0

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&)),该运算符已定义为从文件流中读取。

如果这是可能的,如何?

4

0 回答 0