[C++]Problem z odwoływaniem się do zmiennej w std::vector
Ostatnio zmodyfikowano 2012-07-26 13:31
szymski Temat założony przez niniejszego użytkownika |
[C++]Problem z odwoływaniem się do zmiennej w std::vector » 2012-07-26 12:46:33 Witam! Mam problem z vectorem w którym jest obiekt który ma zmienną x. Ten obiekt dziedziczy po innej klasie. Chcę zmienić tą zmienną ale nie wiem jak. Próbowałem użyć entitylist[0].x = 0; ale nie dalo sie tego zrobic. entitylist to kontener na klasę entity. Po niej dziedziczy obiekt którego chcę zmienić zmienną x. Próbowałem też użyć entitylist[0]->x =0; i też nic nie dało. Co mogę zrobić? Pomóżcie. |
|
pekfos |
» 2012-07-26 12:47:40 Słabo to opisałeś. Podaj kod. |
|
mostrom |
» 2012-07-26 12:59:48 Jeśli x jest polem prywatnym klasy, to nie wyjdzie przypisywanie. Może wirtualna funkcja która przypisuje x? |
|
szymski Temat założony przez niniejszego użytkownika |
» 2012-07-26 13:02:56 Dodaje do vectora obiekt o nazwie test, który dziedziczy po klasie entity. Chcę zmienić zmienną typu float od obiektu test poprzez vector pisząc tak: entitylist[0].x = 0;, ale wyskakuje to: request for member 'x' in 'entitylist.std::vector<_Tp, _Alloc>::operator[] [with _Tp = entity*, _Alloc = std::allocator<entity*>, std::vector<_Tp, _Alloc>::reference = entity*&, std::vector<_Tp, _Alloc>::size_type = unsigned int](0u)', which is of non-class type 'entity*'| |
|
pekfos |
» 2012-07-26 13:13:49 Podaj kod klas. Jak juz to tak: v[ y ]->x = a; , ale jak sam napisałeś, nie działa. Czyli o problemie nic nie wiemy. |
|
szymski Temat założony przez niniejszego użytkownika |
» 2012-07-26 13:22:11 Definicja vectora: vector <entity*> entitylist; Dodanie obiektu do vectora: entitylist.push_back(new test); Kod klas zbyt długi więc podam tylko początek. klasa entity: class entity { public: entity(); int x; klasa test: class test : public entity { public: test(); int x;
|
|
pekfos |
» 2012-07-26 13:24:39 Hmm, a jaki błąd był przy entitylist[ 0 ]->x = 0; ? |
|
szymski Temat założony przez niniejszego użytkownika |
» 2012-07-26 13:26:11 Ten sam co podałem wyżej |
|
« 1 » 2 |