Pozdrav,

Počeo sam da radim drugi zadatak kao što smo pričali, i imam problem sa pokretanjem koda. Nisam ništa menjao u fajlovima, samo sam napravio projekat u Visual Studio-u 2019 (File/New/Project from existing code, sa svim default opcijama), i kada pokušam da ga pokrenem, kompajler mi baci gomilu grešaka. Da li je u ovom trenutku generalno nemoguće pokrenuti main.cpp, ili ja pravim neku grešku?

Koliko sam video, greške koje mi kompajler baca se uglavnom odnose na imena koja ne može da identifikuje, a koja dolaze iz standardne biblioteke. Video sam da je using namespace std iskorišćen na početku triangulator.hpp fajla, ali me je zanimalo zašto ta komanda ne stoji na početku svakog .hpp fajla? Da li bi to bilo redudantno?

Kada smo na fakultetu radili C++, uvek smo #include direktive koristili da uvezemo neke header-e u trenutni fajl, no video sam da se u kodu ovde nekada uključuju .hpp, a nekada .cpp fajlovi. Da li postoji neko pravilo kada treba da uključujem .hpp, a kada .cpp fajlove?

Još jedna od praksi koje su nas uvek terali da ispoštujemo je dodavanje zaštite u zaglavlja u vidu #ifndef - #define - #endif strukture (tražili su nam da ne koristimo #pragma once jer zavisi od kompajlera) kako bismo izbegli višestruku definiciju pri uključivanju zaglavlja. Da li mi koristimo neku drugu zaštitu za zaglavlja? Dosta grešaka koje mi je kompajler bacio je bilo zbog redefinicije promenljivih, pa pretpostavljam da je to zbog odsustva zaštite zaglavlja.

Na par mesta su se pojavila imena koja ranije nisu definisana. Pretpostavljam da je to zato što još uvek nemamo ceo kod, pa nisu sve funkcije i promenljive uvedene, no hteo sam ovde da spomenem i te greške za slučaj da su problem samo kod mene.

Na kraju sam pokušao da izmenim kod na mestima koje sam gore spominjao, samo da vidim mogu li ga naterati da se pokrene, i iako je kompajler prestao da se javlja, linker je počeo da mi baca greške. Pretpostavljam da postoji neko sistematičnije rešenje za moje probleme (do sada mi se linker javljao samo kada ne startujem projekat u VS kako treba), pa bih cenio bilo kakvu pomoć koju možete da mi pružite.

Pozdravi,
Dušan


пет, 11. феб 2022. у 22:34 Marko Vojinovic <vmarko@ipb.ac.rs> је написао/ла:

Upoznati se sa osnovnom klasom Color i njenim child-klasama kroz problem dodeljivanja boje UniqueIDColor datom delu simplicijalnog kompleksa, odnosno celom kompleksu:

   bool UniqueIDColor::colorize_all_simplices( SimpComp* G , int level );
   bool UniqueIDColor::colorize_entire_complex( SimpComp* G );

   Input: pointer na simplicijalni kompleks, nivo "k" za k-simplekse koje treba obojiti.
   Output: true ako je uspesno izvrseno bojenje, false ako je doslo do neke greske.

F-ja colorize_all_simplices() treba da prodje kroz sve simplekse iz G.elements[level] (ili se pise G->elements[level]?), i svakom od njih da dodeli instancu boje klase UniqueIDColor. F-ja colorize_entire_complex() treba da izvrsi prethodnu f-ju za sve vrednosti 0 <= level <= D. Nakon toga, zakomentariti kod koji dodeljuje ovu boju u seed f-ji seed_single_triangle() (boju boundary ne dirati, ona treba da ostane u seed f-ji), i umesto toga u main() f-ji eksplicitno pozvati colorize_entire_complex() da oboji kompleks za trougao, odmah nakon sto se ovaj instancira.


:-)
Marko


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


--
QGHG-it-dev-list mailing list
QGHG-it-dev-list@ipb.ac.rs
http://mail.ipb.ac.rs/mailman/listinfo/qghg-it-dev-list