c++ - QFile 需要多个参数?

标签 c++ qt qfile

我有一个类(class):

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

在类(class)成员中,我尝试使用:

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

我收到一条错误消息:“错误:C2064:术语不计算为采用 1 个参数的函数”,但文档说要使用:

QFile file("in.txt");

我做错了什么?

谢谢

最佳答案

您提出的文档是一个构造函数。它在实际创建对象时调用,而不是稍后调用。您的行为就像该对象是一个仿函数,在创建该对象后“调用”该对象。

要使用构造函数,您可以使用文件名初始化您的成员:

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(); 
}

关于c++ - QFile 需要多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11698175/

相关文章:

c++ - 将 QFiles 正确地存储在一个集合中

c++ - 使用 std::sort 对具有特定条件的二维 vector 进行排序

c++ - 你如何访问另一个进程的内存并调用它的函数?

c++ - 指向实例成员的函数指针

c++ - 在 Visual Studio 的 clang 中启用 C++14

c++ - BlackBerry 10 中的反向地理编码

qt - 如何从 QGraphicsItem::paint() 中将 QGLFrameBufferObject 绘制到画家上

c++ - 为什么 Qt 在 Qt 内部运行或调试时不创建文本文件,而是直接从调试文件夹创建它?

c++ - 类(Class)关系的设计

c++ - 如何使用 QProcess 从特定文件夹执行类似 "qmake -v > 1.txt"的命令?