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 回答