piszę sobie program i mam taki kod
class MyDataModel
{
public:
MyDataModel();
void setLiczba1(QString _liczba1);
void setDzialanie(QString _dzialanie);
void setLiczba2(QString _liczba2);
void setZnak(QString _znak);
void setWynik(QString _wynik);
QString getLiczba1() const;
QString getDzialanie() const;
QString getLiczba2() const;
QString getZnak() const;
QString getWynik() const;
private:
QString liczba1;
QString dzialanie;
QString liczba2;
QString znak;
QString wynik;
};
gdzieś w kodzie tworzę obiekt typu MyDataModel
MyDataModel Data;
QVector<MyDataModel> myData;
std::vector<> myData2;
później tworzę vector na obiekty typu MyDataModel
MyDataModel Data;
myData2.push_back(Data); //std::vector
myData.push_back(Data); //QVector
i teraz zadaję właściwe pytanie - DLACZEGO gdy odwołuję się do funkcji składowej at()
klasy QVector to nie mogę odwołać się do składowych funkcji klasy MyDataModel
zaczynających się na set
myData.at(0).set....BRAK //QVector
a jak użyję zapisu tablicowego, to działa
myData[0].setLiczba1("5"); //QVector
natomiast dziwi mnie, to, że gdy użyję std::vector
to oba zapisy działają
myData2.at(0).setLiczba1("5"); //std::vector
myData2[0].setLiczba1("5"); //std::vector
czy może ktoś to wyjaśnić ?