我正在構建一個程序,它有幾個需要從文件中讀取數據的函數。由於函數的使用相當頻繁,因此打開和關閉每個調用的文件都非常耗時,所以我的計劃是使FILE *對象成爲全局文件,並使文件打開整個程序的持續時間。很顯然,雖然,它是不可能的,因爲這樣的:創建全局FILE *對象?
#include <fstream>
FILE * yhtit;
yhtit = fopen("thefile.txt","r");
int main() {
return 0; }
給出錯誤:main.cpp|54|error: expected constructor, destructor, or type conversion before ‘=’ token|
什麼是最好的方式來保持一個文件打開程序的整個過程中,無需單獨傳遞文件*反對需要它的每個功能?
即使您正在使用FILE *這實際上只是一個C問題而不是C++問題。 – 2010-07-25 05:16:51
你應該將你的FILE *指針包裝在一個Singleton Logging類中,並使其延遲初始化。有效地歸結於具有全局(單)的對象,但它更整潔,如果你使用'Singleton'(相對於使用'全球FILE *' – bits 2010-07-25 06:52:49
@bits:如何做一個單身日誌類幫助的功能,其中「幾個函數...需要從一個文件中讀取數據「爲什麼單身人士比全局人更」整潔「?試圖製作一個類似FILE *的對象單身人士似乎是單身人士的濫用,因爲它是一個有效的事情到了全局變量的解決方案做希望有一個程序打開多個文件。 – 2010-07-25 09:39:58