Hej.
Próbuje napisać pierwszą, prostą aplikacje w Qt. Problem w tym, że mam małe doświadczenie w pisaniu w C++ (do tej pory programowałem tylko w C#).
Oto fragment kodu z problemem:
Tutaj kod z .h
class AdressBook : public QWidget
{
Q_OBJECT
QMap<QString, QString> contacts;
QMapIterator<QString, QString> iterator;
}
A tutaj z cpp:
AdressBook::AdressBook(QWidget *parent) :
QWidget(parent),
ui(new Ui::AdressBook)
{
ui->setupUi(this);
iterator(contacts);
}
Chciałem po prostu wezwać konstruktor iteratora, aby mieć do niego dostęp wewnątrz całej klasy. Niestety z jakiegoś powodu dostaje błąd o treści:
'QMapIterator<Key,T>' : no appropriate default constructor available
with
[
Key=QString,
T=QString
]
Jednak, gdy wywołam go w taki sposób:
AdressBook::AdressBook(QWidget *parent) :
QWidget(parent),
ui(new Ui::AdressBook)
{
ui->setupUi(this);
QMapIterator<QString, QString> iterator(contacts);
}
To wszystko jest w porządku (po usunięciu go z klasy jako pole, tylko to nie rozwiązuje mojego problemu, bo potrzebuje szerszego dostępu do iteratora).
Czy byłby ktoś tak miły i wyjaśnił mi co robię źle i ewentualnie jak mogę obejść mój problem?