Stos i sterta w C++

We współczesnym programowaniu główny akcent jest położony na używanie danego języka oraz jego frameworków i bibliotek. Zawierają one gotowe klasy i metody wyręczając programistę, aby nie musiał całej aplikacji budować od podstaw. Nie mniej ważną rzeczą jest jednak umiejętność implementacji struktur danych, która pozwala zrozumieć ich dzialanie. Wśród nich ważne miejsce zajmują stos (ang. stack)…

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…