Как использовать член метода Class внутри другого метода того же класса?

Как я могу использовать член nomeFile методов setName / getName, чтобы установить имя выходного файла метода saveFile. QString nomeFile является закрытым внутри file.h
Файл, который я создал, возвращает следующую ошибку

QFSFileEngine :: open: имя файла не указано

dialog.cpp

nomeFile="abcd"; // private: QString nomeFile; in dialog.h

file ogg1;
ogg1.setName(nomeFile);

f.cpp

file ogg2;
ogg2.saveFile();

file.cpp

/* COSTRUTTORE */
a::a()
{

}

/* DISTRUTTORE */
a::~a()
{

}

void a::setName(QString _nomeFile)
{
nomeFile="C:\\Users\\MDN\\Documents\\A\\" + _nomeFile + ".txt";
if(!nomeFile.isEmpty())
{
QFile::remove(nomeFile);
}
}

QString a::getName()
{
return nomeFile;
}

void a::saveFile()
{
QFile file(nomeFile);
if (file.open(QIODevice::Append | QIODevice::WriteOnly | QIODevice::Text)
{
QTextStream stream(&file);
stream << "File salvato correttamente";
stream << ".....";
stream << ".....";
}
}

0

Решение

попробуйте использовать это так:
setName("filename.txt"); а затем в свой метод saveFile добавьте параметр, подобный этому: a::saveFile(QString _nomefile) а затем, когда вы вызываете метод, a::saveFile(getName())

1

Другие решения

Вот некоторые догадки:

У вас есть что-то похожее на dialog.hpp:

class MyDialog : QDialog
{
public:
MyDialog(QObject * parent = 0) : QDialog(parent) {}
// other public stuff here
private:
QString nomeFile;
// other private stuff here
}

Вы используете два отдельных объекта в ваших двух файлах, чтобы исправить это, вы должны использовать один объект и ссылаться на него.

например

class MyDialog : QDialog
{
public:
MyDialog(QObject * parent = 0, file& ogg1) : QDialog(parent), m_ogg1(ogg1) {}
// other public stuff here
private:
QString nomeFile;
file& m_ogg1;
// other private stuff here
}

dialog.cpp

void MyDialog::someMethod()
{
nomeFile="abcd";
m_ogg1.setName(nomeFile);
}

f.cpp

file ogg1;
MyDialog * dialog(this, ogg1);
dialog->exec();
ogg1->saveFile();
1

По вопросам рекламы [email protected]