读/写函数定义

时间:2011-04-18 00:12:41

标签: function readability

你会怎么写这些功能:

bool writesomething(const Something& something);
//or
bool writesomething(int somethingid, const Something& something);

bool readsomething(const Something& something);
//or
bool readsomething(int somethingid, Something& something);

请注意 Something 有一个名为 id 的公共字段

1 个答案:

答案 0 :(得分:1)

这取决于Something的结构。但作为一般设计原则,你的课程应该尽可能无知。

话虽这么说,如果你想能够(de)序列化你的对象,我会在内置的I / O流库接口上建模你的I / O方法。然后,您的对象将支持来自控制台,文件以及继承自istreamostream的任何其他内容的I / O.

除了维护与标准库(以及大量第三方代码)的一致接口之外,调整I / O流接口还可以更轻松地编写方法。如果Something有一个int'id'和一个字符串'name'成员:

ostream& operator << (ostream& os, const Something& thing)
{
    os << thing.id;
    os << thing.name;
    return os;
}

如果Something的成员更复杂,则实现operator&lt;&lt;和&gt;&gt;对于那些类型,依此类推。