所以我有这些类(class)。有一个基类,但是它有/将有很多派生类,并且那些派生类也将具有派生类。我希望能够有一个将其二进制数据写入文件的函数,但是我不确定如何对很多派生类进行此操作。

我在想一些类似的事情:

void writeData(ofstream & _fstream)
{
    _fstream.write()//etc..
}

但是,每个实现此方法的派生类将不得不写入其父类的所有数据,这将重复很多代码。

不重写所有先前编写的writeData()代码的最佳方法是什么?

最佳答案

您可以从派生类实现中调用基类实现:

void Derived::writeData(ofstream & _fstream)
{
    // Base class writes its data
    Base::writeData(_fstream);

    // now I can write the data that is specific to this Derived class
    _fstream.write()//etc..
}

09-27 08:14