Przypisanie obiektu do wskaźnika
Ostatnio zmodyfikowano 2016-04-07 21:00
emSon Temat założony przez niniejszego użytkownika |
Przypisanie obiektu do wskaźnika » 2016-04-06 20:07:28 Witam. Chciałbym, aby wskaźnik z std::vector'a wskazywał na obiekt, który narazie tworzę tak: m_interactables[ 0 ]->GetRect() = new sf::RectangleShape();
Jednak wyświetla się komunikat: error: lvalue required as left operand of assignment
Potrzebny kod: std::vector < GUIInteractable *> m_interactables;
sf::RectangleShape * GUIInteractable::GetRect() { return m_rect; }
sf::RectangleShape * m_rect;
Co robię źle? :) |
|
1aam2am1 |
» 2016-04-06 20:19:49 Zwracaj wskaźnik przez referencje. |
|
emSon Temat założony przez niniejszego użytkownika |
» 2016-04-06 21:17:48 Nie działa :/ In member function ‘virtual void GUIWindowOne::Init(sf::Font&)’: error: no match for ‘operator=’ (operand types are ‘sf::RectangleShape’ and ‘sf::RectangleShape*’) note: candidate: sf::RectangleShape& sf::RectangleShape::operator=(const sf::RectangleShape&) note: no known conversion for argument 1 from ‘sf::RectangleShape*’ to ‘const sf::RectangleShape&’ note: candidate: sf::RectangleShape& sf::RectangleShape::operator=(sf::RectangleShape&&) note: no known conversion for argument 1 from ‘sf::RectangleShape*’ to ‘sf::RectangleShape&&’
Zmieniłem funkcję na: sf::RectangleShape & GUIInteractable::GetRect() { return * m_rect; }
|
|
1aam2am1 |
» 2016-04-06 21:35:12 sf::RectangleShape *& GUIInteractable::GetRect() { return m_rect; }
|
|
emSon Temat założony przez niniejszego użytkownika |
» 2016-04-06 21:53:16 sf::RectangleShape &* GetRect();
error: cannot declare pointer to ‘class sf::RectangleShape&’
|
|
Kaikso |
» 2016-04-06 22:01:43 Bo to ma być referencja do wskaźnika, a nie wskaźnik do referencji (takiego nie ma): sf::RectangleShape *& GUIInteractable::GetRect() { return m_rect; }
|
|
mokrowski |
» 2016-04-07 10:58:15 Jeśli nie masz wyjścia, to zwracaj taką "matrioszkę" z referencją na wskaźnik. Jeśli jednak masz wyjście, rozważ pracę na referencjach lub stosowanie wskaźników inteligentnych (shared_ptr, unique_ptr). Dziś raczej jawnego ("gołego") new i delete należy unikać. |
|
emSon Temat założony przez niniejszego użytkownika |
» 2016-04-07 15:21:18 mokrowski, możesz rozwinąć wypowiedź? Dlaczego powinno się tego unikać i jak by te referencje czy shared_ptr wyglądało? |
|
« 1 » 2 |