要在C++中归档的虚拟函数

Virtual function to file in C++

本文关键字:虚拟 函数 C++ 要在      更新时间:2023-10-16

我只是想知道是否可以将由虚拟函数display()组成的动态数组对象写入文本文件(例如txtfiletodisplay.txt)。

编辑时间:我没有使用vector,而是用这种方式实现它。

在主()中

clsStaff** objStaff = new clsStaff[userInput];
ofstream outputFile("staff.txt");
for (x=0; x<userInput; x++)
      outputFile = objStaff[x]->display();
class FileDisplayer
{
public:
     virtual File display() const;
     ...
};
class File
{
    ...
};
std::vector<FileDisplayer*> objStaff; // this
FileDisplayer* objStaff[100];         // ... or this
FileDisplayer** objStaff;             // ... or this
File outputFile = objStaff[x]->display();

不知道你真正的意思,所以FileDisplayerFile可能是误导性的名字。

编辑:

这可能意味着display将outputFile作为一个参数(而outputFile是一个输出流)。在这种情况下,上面应该像这个一样重写

class FileDisplayer
{
public:
     virtual void display(std::ostream& file) const;
     ...
};
std::vector<FileDisplayer*> objStaff; // this
FileDisplayer* objStaff[100];         // ... or this
FileDisplayer** objStaff;             // ... or this
std::ofstream outputFile;
...
objStaff[x]->display(outputFile);