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