C++ 虚拟函数以C++;

C++ 虚拟函数以C++;,c++,C++,我只是想知道是否有可能将由虚拟函数组成的动态数组对象,display()写入文本文件(例如txtfiletodisplay.txt) 编辑: 我不是用vector,而是用这种方式实现它 大体上 clsStaff**objStaff=newclsstaff[userInput]; 流输出文件(“staff.txt”); 对于(x=0;xdisplay(); 请澄清,您到底想做什么?或者反过来问,为什么您似乎认为自己做不到?或者为什么不简单地尝试一下?对我来说,这是完全可能的。包含具有显示成员函数的

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

编辑: 我不是用vector,而是用这种方式实现它

大体上

clsStaff**objStaff=newclsstaff[userInput];
流输出文件(“staff.txt”);
对于(x=0;xdisplay();

请澄清,您到底想做什么?或者反过来问,为什么您似乎认为自己做不到?或者为什么不简单地尝试一下?对我来说,这是完全可能的。包含具有
显示
成员函数的对象?如果我不使用向量,是否可以这样做?当然,只需将向量替换为数组或指针(如果需要动态数组)。请参见上面的编辑。我可以问一下上面编写的类文件用于什么吗?我想了解为什么要在输出文件前面实现文件。或者更准确地说,我理解这是一个误导性的名称。但为什么必须在前面包含一个类名称的文件outputFile.outputFile是一个变量,所有变量在使用前都必须声明。您可以通过在变量前面加上类型前缀来声明变量。这就是我上面所做的。当然,我编造了
文件
,据我所知,您可能已经将outputFile声明为其他内容。好的,我知道您现在正在尝试实现的。我的输出文件被声明为前面编辑过的流。所以我根据上面发布的我自己的编码实现了它。但有一个我不理解的问题。我得到了一个错误,说并没有匹配运算符
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();
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);