wywolanie metody ze struktury na obiekcie z vectora

Odpowiedz Nowy wątek
2016-11-15 17:12
1234567890
0

mam strukturę, składającą się z 3 parametrów, vectora i jednej metody add, która dodaje wartość do wektora:

struct Shape {
    int line_width, line_color, fill_color;
    vector<Point> pts;
    Shape(int lw, int lc, int fc)
    : line_width(lw), line_color(lc), fill_color(fc) {}
    void add(Point p) { pts.push_back(p); }
    } 

stworzylem vector wskazań na takie struktury:

 vector <Shape*> ksztalty;

zeby stworzyc nowy obiekt typu Shape pisze:

ksztalty.push_back(new Shape(0, FL_BLACK, 0)); 

i teraz chcialbym dla dowolnego (i-tego) obiektu z vectora Shape wywołać metodę add:

 ksztalty[i].add(Point(10,10))

ale cos w tej linijce jest nie tak :(

Pozostało 580 znaków

2016-11-15 17:21
1
ksztalty[i]->add(Point(10,10))

Swoją drogą zdajesz sobie sprawę z tego, że masz wyciek pamięci? Wektor trzyma gołe wskaźniki na pamięć alokowaną przez new i potem nic tej pamięci nie sprząta. Dlaczego nie robisz

vector<Shape> ksztalty;

wtedy nawet pierwotny błąd zniknie.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0