[QGHG-it-dev-list] Zadatak 33 - Evidencija o instanciranim SimpComp objektima

Marko Vojinovic vmarko at ipb.ac.rs
Thu Dec 22 14:15:24 CET 2022


E super, odlicno, to sad funkcionise kako treba, mada cu ga testirati jos kasnije. ;-)

:-)
Marko


Dr. Marko Vojinovic
Group for Gravitation, Particles and Fields
Institute of Physics
University of Belgrade
======================
home page: www.markovojinovic.com
e-mail:    vmarko at ipb.ac.rs



On Thu, 22 Dec 2022, Nenad Korolija wrote:

> Zdravo svima,
> 
> Poslednji moji commit/push-ovi se odnose na zadatak 33.
> 
> Dakle, napravio sam uz Markovo savetovanje i predlog kako razresiti problem duplog instanciranja globalne promenljive globalnu promenljivu u global-vars.hpp + global-vars.cpp, koja se
> azurira prilikom seed-ovanja ili brisanja svega.
> 
> Marko, hvala na javljanju za dupliranje pointera u vektoru kompleksa ukoliko se seed-uje pomocu seed_sphere_intuitively!
> 
> Vidimo se,
> Nenad
> 
> On Sat, Nov 19, 2022 at 1:43 AM Marko Vojinovic <vmarko at ipb.ac.rs> wrote:
>
>       Kako momentalno stoje stvari, biblioteka nam dozvoljava da seed-ujemo vise nezavisnih SimpComp kompleksa i da radimo sa njima, ali nigde ne vodimo evidenciju o tome koliko
>       ih ima i kako im pristupiti svima odjednom ako treba (a trebace). Biblioteka treba da vodi tu evidenciju, sto je tema ovog zadatka.
>
>       Treba dakle implementirati sledece tri stvari:
>
>       (1) Uvesti jednu globalnu varijablu,
>
>           vector<SimpComp *> SeededComplexes
>
>       koja treba da bude lista pointera na sve seed-ovane SimpComp objekte (nisam siguran da mi je sintaksa tacna, popravite ako treba). Ideja je da mogu u main() f-ji da
>       seed-ujem nekoliko kompleksa na standardan nacin:
>
>           SimpComp *sc0 = seed_single_simplex(...);
>           SimpComp *sc1 = seed_sphere(...);
>           ...
>           SimpComp *scN = seed_stagod(...);
>
>       i da se pointeri sc0, sc1, ..., scN automatski stave u listu SeededComplexes, tako da mogu bilo kome od njih da pristupim bilo direktno,
>
>           cout << sc2->name << endl;
>           cout << sc1->D << endl;
>
>       ali da isto to mogu da uradim i preko globalne varijable:
>
>           cout << SeededComplexes[2]->name << endl;
>           cout << SeededComplexes[1]->D << endl;
>
>       Deklaraciju globalne varijable stavite u simpcomp.hpp fajl, nakon deklaracije klase SimpComp.
>
>       (2) Svaka seed f-ja treba na kraju, pre nego sto return-uje pointer na seed-ovani kompleks, da proveri da li je kompleks zaista seed-ovan (da slucajno nije nullptr iz nekog
>       razloga), i onda da ga push-uje kao nov element u SeededComplexes, pa onda da uradi return().
>
>       (3) Treba da napravimo novu f-ju,
>
>           void unseed_complex( SimpComp *simpComp );
>
>       koju cemo eksplicitno da pozovemo kada hocemo da obrisemo neki kompleks. Ta f-ja treba da izbaci pointer na kompleks sa spiska SeededComplexes, pa onda da pozove destruktor
>       koji ce rekurzivno da dealocira ceo kompleks. Takodje, treba da napravimo i f-ju
>
>           void unseed_everything( void );
>
>       koja ce da prodje redom kroz sve elemente SeededComplexes, i da pozove unseed_complex() za svaki od njih. Drugim recima, da obrise svu memoriju koju smo alocirali. Ovu f-ju
>       takodje ima smisla pozvati na kraju main() f-je, sta god da smo pre toga radili u njoj. :-) Obe ove f-je mogu da budu staticke, stavite ih zajedno sa f-jama za seed-ovanje u
>       seed.cpp i seed.hpp fajlove.
>
>       Ako nesto nije jasno oko ovog zadatka, javite.
>
>       :-)
>       Marko
> 
>
>       Dr. Marko Vojinovic
>       Group for Gravitation, Particles and Fields
>       Institute of Physics
>       University of Belgrade
>       ======================
>       home page: www.markovojinovic.com
>       e-mail:    vmarko at ipb.ac.rs
> 
>
>       --
>       QGHG-it-dev-list mailing list
>       QGHG-it-dev-list at ipb.ac.rs
>       http://mail.ipb.ac.rs/mailman/listinfo/qghg-it-dev-list
> 
> 
>


More information about the QGHG-it-dev-list mailing list