1

我已经编写了以下多态类。

 #include <iostream>
 #include <fstream>

 using namespace std;

 class SaveAndDraw
 {
    public:
      virtual void draw()=0;
      void saveToFile();
 };
 class MakeShape : public SaveAndDraw
 {
   public:
      virtual void draw();

 };

 void SaveAndDraw::saveToFile();
 {

如何将虚拟绘图功能保存到 txt 文件?

 } 

 void MakeShape::draw()
 {
    for(int i = 0; i < 10 ; i++)
    {
        for(int j = 0; j < i; j++)
        {
            cout << "*";

        }
        cout << endl;
    }
}

int main()
{
    SaveAndDraw *creation = new MakeShape;
    creation->draw();
    creation->saveToFile();
    delete creation;
    return 0;
}

我不知道如何将绘图保存到文件中。我知道要创建你必须说的文件

fstream fout;
fout.open("test.txt");
fout.close();
4

1 回答 1

1

不要在你的 draw 函数中写入 std::cout ,而是传递它fout

void MakeShape::draw(std::ostream & out)
 {
    for(int i = 0; i < 10 ; i++)
    {
        for(int j = 0; j < i; j++)
        {
            out << "*";

        }
        out << endl;
    }
}

如果您需要 draw 写入 cout,只需将 cout 作为参数传递即可。
这样,您就不再需要 saveToFile 函数了。

于 2012-10-05T10:56:31.533 回答