2012-07-28 76 views
0

我有一個類:QFile需要多個參數?

Class MyClass 
{ 
    void myMember(); 
    ///code etc 
    private: 
     QFile fileMBox; 
} 

,並在類的成員,我嘗試使用:

void MyClass::myMember() 
{ 
    fileMBox ("myFile.txt"); 
} 

,我也得到一個錯誤說:「錯誤:C2064:術語不計算爲函數採取1個參數「,但文檔說使用:

QFile file("in.txt"); 

我做錯了什麼?

謝謝

回答

1

你提出的文檔是一個構造函數。它是在實際製造對象時調用的,而不是稍後。你的行爲就像對象是一個仿函數,在對象創建後「調用」對象。

要利用構造函數,你可以用文件名初始化成員:

MyClass::MyClass() : fileMBox ("myFile.txt") {} 

然而,沒有使用Qt的,我不知道這是否會打開它,或者沒有。如果不打開它,使用下面的代替:

MyClass::MyClass() { 
    fileMBox.setFileName ("myFile.txt"); 
} 

現在你的函數只需要打開它,使用它,每一次關閉:

void MyClass::myMember() { 
    if (!fileMBox.open (QIODevice::ReadOnly | QIODevice::Text)) 
     //handle error 

    //read file and do whatever 

    fileMBox.close(); 
} 
+0

感謝您的答覆,我」 m試圖做的是實際上從文件中讀取文本: 以下示例逐行讀取文本文件: QFile文件(「in.txt」);如果(!file.open(QIODevice :: ReadOnly | QIODevice :: Text)) return; (!file.atEnd()){ QByteArray line = file.readLine(); process_line(line); process_line(line); } – Laserbeak43 2012-07-28 04:24:37

+1

@ Laserbeak43,你想讓文件在你的類的對象被創建時打開,或者當你調用該函數時發生所有這些? – chris 2012-07-28 04:26:32

+0

當我調用函數時,我想讓它發生,因爲該文件可以隨時更新。 P.S. 對不起,格式似乎沒有工作,我認爲的答覆方式.. – Laserbeak43 2012-07-28 04:27:49

相關問題