1

这是一个“最佳设计”问题。我知道有很多方法可以做到这一点。问题是,哪个是有利的,原因是什么。

一般来说:我有一堆包含不同类型数据的类。每个班级都与其他班级略有不同。在某些时候,我可能想要输出这些类中包含的数据,每个类实例在不同的时间点。我看到了两种实现方式:

a)为每个类编写某种“输出()”方法。当我想输出时,我必须依靠这种方法存在。

b)编写一个类“OutputClasses”,它有一个方法“output()”,它为每个类处理不同的输出

哪一种是“标准”或预期的方式?以上之一还是其​​他?

4

1 回答 1

2

推荐的方法是:

ostream& YourClass::Output(ostream& os) const;

每个类中的成员函数以及“独立”重载 << 运算符来调用它:

ostream& operator<<(ostream& os, const YourClass&c)
{
    return c.Output(os);
}

资料来源:Herb Sutter 的“Exceptional C++” ,第 20 条。类机制

萨特磨坊

于 2013-09-27T11:25:08.203 回答