
Ako sme si sľúbili, dnes presedláme na programovací jazyk C++. Naučíme sa rozdeliť projekt na viacero súborov.
Vytvorte si nový projekt s tým rozdielom, že namiesto minulého typu C/Helloworld použijeme C++/Helloworld. Postup je presne taký istý. Dúfam, že to nikomu nebude robiť problém (v budúcnosti budem automaticky predpokladať, že máte vytvorený projekt C++). Keď už máte váš nový projekt otvorený a pred sebou funkciu „main,“ nezabudnite si nastaviť štýl formátovania kódu. Taktiež v ďalšom texte (a screenshotoch) predpokladám, že sa projekt volá kdev3.
P.S.: Nezabudnite si aktualizovať Kdevelop na novú verziu 3.5.0, ktorá bola vydaná 16.10. Obsahuje mnoho opráv chýb, ale aj vylepšenú funkcionalitu (+ čiastočný slovenský preklad). Viac informácii nájdete v changelogu na kdevelop.org.
Rýchly a jednoduchý spôsob
Dobrou a osvedčenou cestou ako rozdeliť program je v C++ väčšinou oddelenie každej triedy (prípadne viacero menších súvisiacich tried) do osobitných súborov a vo veľkých projektoch tieto triedy podľa súvisiacej funkcionality do oddelených menných oborov/namespaces (hoci niekto na to môže mať iný pohľad). Pri vývoji v jazyku C++ postupujeme väčšinou implementáciou jednotlivých tried. S tým Kdevelop ráta, a preto nám pripravil jednoduchého sprievodcu pridaním triedy, ktorý triedu podľa nášho popisu vytvorí, vloží do nového súboru a pridá súvisiace zdrojáky k aktívnemu projektu (teda zabezpečí kompiláciu triedy). Znova podotýkam, že je vhodné mať nastavený štýl formátovania, tak aby vám kdevelop-om generovaný kód vyhovoval.
Takže je čas vytvoriť si novú triedu. Dialóg pre vytvorenie nájdete v toolbare alebo v menu Projekt -> Nová trieda (Project -> New Class).

Pred vami by sa malo otvoriť takéto okienko:

Tu vyplníme meno novej triedy (v ďalšom texte predpokladam názov „invite“, môžete však samozrejme použiť ľubovoľný iný názov) a prípadne namespace (kto nevie, čo to je, nech nechá políčko prázdne). V prípade pocitu akútnej potreby niečo zmeniť, môžete upraviť názov vygenerovaných súborov, nastaviť dedenie z inej triedy a pod. Tí, čo vedia o čo ide, to budú vedieť, tí čo nie zatiaľ vyplnia len meno a stlačia OK. Nasleduje dôležitý dialóg, ktorý sa nás pýta, či chceme túto triedu pridať k cieľu kompilácie súčasného projektu. (V prípade projektov skladajúcich sa z viacerých podprojektov je tu voľba pridať triedu inému projektu). Keďže máme len jednoduchý projekt voľba je jasná:

V prípade, ak by ste stlačili „Zrušiť“, trieda by síce bola vytvorená, no nebola by skompilovaná (teda by sa nedala použiť). Stlačíme teda „OK“. Pred nami by mali byť otvorené dva nové súbory (hlavičkový a zdroják). To, že táto trieda bude skompilovaná spolu s projektom, si môžeme overiť v automake manageri (pravý bočný panel -> Správca automake).

Ak v skupine s názvom nášho projektu vidíme súbor s názvom našej triedy a príponou cpp, vieme, že je všetko v poriadku. Automake manager je „hlavným centrom“ nastavení súvisiacich s procesom kompilácie. Tu nastavujeme, čo sa kompilovať bude a čo naopak nebude.
Teraz sa môžeme pustiť do implementácie triedy. Nebudem tu vymýšľať nič zložité, len textovú hlášku, ktorú vypíšeme z konštruktora triedy invite. Vy si potom samozrejme v budúcnosti možete robiť absolútne, čo sa vám zapáči (v rámci vašich možností ;-)).
Pre tých, čo by s tým mohli mať problém, napíšem postup:
std::cout << „Hello from invite constructor!\n“;
#include <iostream>
#include „invite.h“
invite* aa = new invite; delete aa;
- Doplňme do konštruktora triedy invite volanie
- do invite.h doplníme
- do kdev3.cpp doplňme
- a za volanie vypisujúce hlášku „Hello world“ (v kdev3.cpp) doplňme
Pre istotu ešte napíšem, ako budú podstatné časti týchto súborov vyzerať po úprave:
invite::invite() { std::cout << "Hello from invite constructor\n"; }
#include <iostream> #include <cstdlib> #include "invite.h" using namespace std; int main(int argc, char *argv[]) { cout << "Hello, world!" << endl; invite* aa = new invite; delete aa; return EXIT_SUCCESS; }
#include <iostream> class invite{ public: invite(); ~invite(); };
- invite.cpp
- kdev3.cpp
- invite.h
Teraz stačí projekt skompilovať a spustiť. Ak máme všetko urobené správne, objaví sa nám takéto okno.

Ako vidíme, konštruktor našej novej triedy zaujal svoju úlohu a vypísal nám pozdrav ;-).
Menej používaný spôsob
Niekedy je potrebné k projektu pridať už existujúci zdroják, prípadne vytvoriť nový súbor ručne (ešte menej používané). Hneď si ukážeme, ako na to.
Ak potrebujeme vytvoriť prázdny súbor zvolíme v menu Súbor -> Nový.

Tu zvolíme umiestnenie súboru, meno, typ (hlavičkový, zdrojový) a zaškrtneme voľbu „Add to project“, čo nám zabezpečí, že náš zdroják bude aj skompilovaný. Čaká nás už známy dialóg ktorý len potvrdíme stlačením OK.

Pre pridanie už existujúceho súboru do projektu si tento súbor skopírujme na vhodné miesto (do adresárovej štruktúry projektu). Otvoríme ho (Súbor -> Otvoriť) a nakoniec pridáme k projektu cez automake manger:

Epilóg
Dúfam, že vám nič nerobilo problém, a teda sa môžeme pustiť do nasledujúceho dielu (ktorý napíšem výrazne rýchlejšie ;-) ). Nabudúce sa pozrieme na ďalšie funkcie týkajúce sa tried, ale aj funkcií všeobecne.
Vďaka za pozornosť, Timotej Šiškovič
Pre pridávanie komentárov sa musíte prihlásiť.