0

私はクラスを持っています:

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

そしてクラスのメンバーで私は使用しようとします:

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

そして、「エラー:C2064:用語は1つの引数をとる関数に評価されません」というエラーが表示されますが、ドキュメントでは次を使用するように言われています:

QFile file("in.txt");

私は何を間違っていますか?

ありがとう

4

1 に答える 1

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(); 
}
于 2012-07-28T04:09:36.910 に答える