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

Problem z vectorem

42 Warsaw Coding Academy
0 głosów
266 wizyt
pytanie zadane 14 kwietnia 2015 w C i C++ przez Do.Zzay Mądrala (5,700 p.)

Mam straszny problem, trenując bibliotekę STL trafiłem na dość spory kłopot. Przyjmijmy że mamy 3 klasy.

1 klasa

ma wektor z intami.

 

2 klasa

ma obiekt klasy 1

 

klasa 3

przechowuje obiekty klasy 1 w map'ie

 

Main:

static klasa3 Atlas//bedzie on mial klasy1 w map'ie.

load()
{
 klasa1 mojaKlasa1;//ta podstawowa
 klasa2 Czlowiek;//posiada obiekt typu klasa1

 mojaKlasa1.dodajDoWektora(bla bla);//Dodajemy element do wektora z klasy1

Atlas.dodaj(mojaKlasa1); //Dodajemy Klase1 (ta z wektorem) do Atlasu

Czlowiek.UstawKlase1(Atlas.dajMiKlase1(costam)); //pobieramy z atlasu obiekt typu klasa1 dla Czlowieka(klasy 2)

}


main()
{
load(); //Wywolujemy ta dziwna funkcje
// Tu zaczynaja sie schody
cout<< Czlowiek->ZwrotKlasy1->WypiszWartoscZWektora();

}

 

Wypisana wartosc z wektora ma liczbe -213412...., co oznacza że wyszedłem z zakresu wektora klasy1, co jest dziwne, ponieważ Czlowiek miał Klase1 z wektorem, którą przypisał z atlasu. Dodam, że klasa1 w innych funkcjach też dziwnie się zachowuje tzn. podaje size_t w tysiącach. Ja serio nie wiem co zrobiłem źle, proszę uświadomcie mnie w tym błędzie sad

Pewnie wyjaśniłem to dość chaotycznie, w razie gdyby ktoś nie zrozumiał podam więcej informacji.

 

1 odpowiedź

0 głosów
odpowiedź 14 kwietnia 2015 przez daan Pasjonat (17,640 p.)
hm mógłbyś pokazać troche więcej kodu ? :P
komentarz 14 kwietnia 2015 przez Do.Zzay Mądrala (5,700 p.)
Nie chodzi tu o kod, tylko o zarządzenie pamięcią :) Debugger mi dzień zepsuł, gdy chce zweócić dane z wektora klasy1, która znajduje się w klasie2, którą przypisałem poprzez klasę3 przechowującą klasy1. Dodam że vector, a w klasie 2 znajduje sie wskaznik na typ klasa1
komentarz 14 kwietnia 2015 przez daan Pasjonat (17,640 p.)
mówisz, że wyszedłeś poza vector, czyli program Ci się wywala z komunikatem "vector subscript out of range" tak ? poza tym tworzysz obiekty w funkcji globalnej a potem chcesz sie do nich dobrać w mainie ? przecież obiekt Czlowiek jest zmienna lokalna która przepada po wykonaniu sie funkcji load() ? ten Czlowiek z maina jest utworzony gdzies indziej ?
komentarz 14 kwietnia 2015 przez MrWeb Stary wyjadacz (10,180 p.)
Autorze, proszę, udostępnij cały kod, bo teraz to bardziej przypomina zgadywankę niż pomoc w rozwiązaniu problemu...
komentarz 14 kwietnia 2015 przez Do.Zzay Mądrala (5,700 p.)
Czlowiek jest dodany do innej mapy, a napisałem w mainie tak by było prościej. Jutro napiszę kod w czystym c++ bo orginał ma dołączone inne bilbioteki.

Podobne pytania

0 głosów
1 odpowiedź 230 wizyt
0 głosów
1 odpowiedź 159 wizyt
pytanie zadane 25 stycznia 2021 w C i C++ przez hicodyn Początkujący (420 p.)
0 głosów
1 odpowiedź 158 wizyt
pytanie zadane 9 maja 2020 w C i C++ przez nikon12s Nowicjusz (120 p.)

93,389 zapytań

142,386 odpowiedzi

322,549 komentarzy

62,750 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...