QFile leva mais de um parâmetro?
Pergunta
eu tenho uma aula:
Class MyClass
{
void myMember();
///code etc
private:
QFile fileMBox;
}
e no membro da classe eu tento usar:
void MyClass::myMember()
{
fileMBox ("myFile.txt");
}
e recebo um erro dizendo:"erro:C2064:o termo não é avaliado como uma função que recebe 1 argumento", mas os documentos dizem para usar:
QFile file("in.txt");
O que estou fazendo de errado?
obrigado
Solução
A documentação que você trouxe é um construtor.É chamado quando o objeto é realmente criado, não mais tarde.Você está agindo como se o objeto fosse um functor, "chamando" o objeto depois de criado.
Para utilizar o construtor, você pode inicializar seu membro com o nome do arquivo:
MyClass::MyClass() : fileMBox ("myFile.txt") {}
Porém, por não ter usado o Qt, não sei se isso vai abri-lo ou não.Se abrir, use o seguinte:
MyClass::MyClass() {
fileMBox.setFileName ("myFile.txt");
}
Agora sua função só precisa abri-la, usá-la e fechá-la sempre:
void MyClass::myMember() {
if (!fileMBox.open (QIODevice::ReadOnly | QIODevice::Text))
//handle error
//read file and do whatever
fileMBox.close();
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow