Pary i krotki w C++11/14

Standard C++98 wprowadził pierwszą klasę pair do zarządzania parami wartości, a standard C++03 klasę tuple do obsługi krotek. W standardzie C++ obie zostały rozbudowane. Klasa pair Klasa pair służy do przechowywania dwóch wartości. Trkatuje je jako jedność (jeden zestaw danych). Znajomość tej klasy jest bardzo przydatna, ponieważ używana jest ona w wielu miejscach Biblioteki Standardowej….

Python jako narzędzie budowania projektu w C++

Nowoczesny C++ ma wiele narzędzi służących do wspomagania jego budowy. Jednym z takich narzędzi jest język Python, który z roku na rok pnie się coraz wyżej w rankingach popularności. Python jest językiem skryptowym co go predystynuje do używania w projektach korzystających z C++. Budowa struktury projektu Można ręcznie tworzyć katalogi oraz szablony plików składające się…

OpenGL (część 3) – renderowanie trójkątów

Wszystkie obiekty generowane przez OpenGL znajdują się w przestrzeni 3D. Jednak ekran komputera jest płaski – reprezentuje przestrzeń 2D. Dlatego niemałą częścią OpenGL jest transformacja współrzędnych trójwymiarowych na dwuwymiarową matrycę komputera. Dokonuje się to poprzez potok graficzny (ang. graphics pipeline) OpenGL, który wykonuje dwa ważne zadania – najpierw przekształca współrzędne 3D na 2D, a następnie…

OpenGL (część 2) – konfiguracja środowiska i pierwszy program

Zaczynając pracę z OpenGL-em najpierw należy stworzyć kontekst aplikacji. Następnym krokiem jest stworzenie okna, w którym będziemy generować naszą oszałamiającą grafikę. Aby osiągnąć ten pierwszy cel należy najpierw zapoznać się z pomocnymi bibliotekami. Najczęściej są stosowane takie jak: GLUT, GLFW, SDL, SFML. My będziemy korzystać z GLFW. Biblioteka GLFW Jest to biblioteka napisana w języku…

OpenGL (część 1) – wstęp

Zaczynając serię o programowaniu w OpenGL należy najpierw uściślić co to jest. Otóż powszechnie się uważa, że OpenGL jest interfejsem do programowania apilacji (ang. API – Application Programming Interface). Jednak nie jest to API, lecz specyfikacja, która została opracowana w firmie Silicon Graphics a teraz jest utrzymywana przez Khronos Group. Specyfikacja ma to do siebie,…

Język Java a C++. Czy możliwa jest szybka „przesiadka”?

Każdy, kto miał kontakt z C++ oraz Javą wie, jak często podobny jest kod pisany w tych dwu językach. Wydaje się zatem, że przesiadka z jednego na drugi jest dla programisty łatwa i bezproblemowa. Czy tak jest w rzeczywistości? Jako programista mam doświadczenie w obu tych technologiach. W obu pracowałem (bądź pracuję). I mogę stwierdzić,…

O wyższości kompilatora nad preprocesorem

C++ od początku odziedziczył wiele elementów swojego poprzednika – języka C. Preprocesor wraz z dyrektywami są jednym z takich elementów. O ile we wcześniejszych wersjach C++ często używano preprocesora, tyle w nowych standardach (szczególnie od C++98/03) zaczęło się to zmieniać. Język zaczął intensywnie zmieniać swoje oblicze i preprocesor zeszedł na dalszy nieco plan. Tym niemniej…

Intelignetne wskaźniki w C++11/14 – część 2

W poprzedniej części zajmowalismy się inteligentnym wskaźnikiem unique_ptr. Teraz przyszła kolej na dwa pozostałe wskażniki, zdefiniowane przez klasy shared_ptr oraz weak_ptr. Klasa shared_ptr Część obiektów używanych w programie posiada jednego właściela i jeden wskaźnik. Są jednak takie, które tych wskaźników mają wiele, aby były widoczne z różnych miejsc. Te odnośniki do obiektu z różnych miejsc…

Intelignetne wskaźniki w C++11/14 – część 1

Każdy, kto choć pobieżnie zetknął się z językiem C lub C++ musiał mieć styczność także z elementem tych języków programowania, jakim są wskaźniki (ang. pointers). Te specjalne zmienne służą do przechowywania adresów innych zmiennych. Jest to bardzo przydatny element języka. Jednak w pewnych sytuacjach wskaźniki mogą być jednak niebezpieczne. Dobrze to widać w przypadku zarządzania…