2013-11-22 122 views
-4

我只是想知道是否可以在包含虛函數display()的動態數組對象中寫入文本文件(例如txtfiletodisplay.txt)。以C++編寫的虛擬函數

編輯: 而不是使用矢量,即時通訊執行它這種方式。

在主

()

clsStaff** objStaff = new clsStaff[userInput]; 

ofstream outputFile("staff.txt"); 

for (x=0; x<userInput; x++) 
     outputFile = objStaff[x]->display(); 
+0

請清楚,你想要做什麼興奮? – manish

+0

或者反過來問,爲什麼你覺得你不能這樣做?或者爲什麼不簡單地嘗試呢? – codeling

+1

聽起來對我來說完全可能。 – john

回答

0
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可能是誤導性的姓名。

編輯:

這可能是顯示是指採取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); 
+0

是否有可能做到這一點,如果我不使用矢量? – user2949294

+0

當然,如果你想要一個動態數組,只需要用數組或者指針替換它。見上面的編輯。 – john

+0

我可以問問上面寫的文件是用來做什麼的?我想了解爲什麼在outputFile前面實現File的原因。或者更確切地說,我明白這是一個誤導性的名字。但爲什麼有必要在outputFile前面包含一個類名稱的文件。 – user2949294