• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Modyfikacja wektora w metodzie klasy

0 głosów
41 wizyt
pytanie zadane 26 grudnia 2016 w C i C++ przez użytkownika PryPry Nowicjusz (160 punkty)

Witam,

Od jakiegoś czasu mierze się z problemem modyfikacji zawartości i wielkości wektora w zdefiniowanej przeze mnie klasie, mianowicie:

Definicja klasy:

class Route {
std::vector<double> *begin;
std::vector<double> *end;
std::vector<int> *speed;
std::vector<bool> *spot;
public:
Route(TStringList*);
void Modify();
};

Metodą Modify() chciałbym usuwać ostatni element wektora begin, end, speed i spot:

void Route::Modify(){
begin->pop_back();
end->pop_back();
speed->pop_back();
spot->pop_back();
}

Wartości do wektorów wpisuje za pomocą konstruktora, tam metody dla wektorów działają. 

Mógłby ktoś mnie oświecić co robię źle? smiley

komentarz 26 grudnia 2016 przez użytkownika Criss Szeryf (91,900 punkty)
Te vectory na pewno w ogóle istnieją? Mam na myśli, że to są tylko wskaźniki, nie mam żadnej pewności czy wskazują na obiekty. Pokaż konstruktor.

1 odpowiedź

0 głosów
odpowiedź 26 grudnia 2016 przez użytkownika PryPry Nowicjusz (160 punkty)
Problem rozwiązany! :) I co ciekawe tkwił w strukturze projektu (piszę okienka w C++ Builderze).
Kompilator błędów nie wywalał, ale przy testowaniu programu program się wysypywał.

W Form1 (tam gdzie deklarowałem obiekt) metody działały, ale w Form2 już wywalalo błędy, a debugger wskazywał na zawartość metody jako błędną. Okazało się że dopisanie: Form1->Obiekt->Modify(); rozwiązało problem.

Podobne pytania

0 głosów
4 odpowiedzi 65 wizyt
pytanie zadane 29 grudnia 2016 w C i C++ przez użytkownika Adrian Stasiak Początkujący (370 punkty)
0 głosów
1 odpowiedź 94 wizyt
pytanie zadane 13 listopada 2016 w C i C++ przez użytkownika Evelek Stary wyjadacz (14,760 punkty)
0 głosów
3 odpowiedzi 136 wizyt
pytanie zadane 16 czerwca 2015 w C i C++ przez użytkownika tarnasm Gaduła (3,010 punkty)
...