C++ I. Úvod

10.10.2015 | 14:45 | Central Nexus | borg

Vitajte pri novom seriáli, ktorý bude vychádzať tu na linuxos.sk. Seriál bude o programovacom jazyku C++ a jeho cieľom by malo byť oboznámenie čitateľov s týmto jazykom.

Vitajte pri novom seriáli, ktorý bude vychádzať tu na linuxos.sk. Seriál bude o programovacom jazyku C++ a jeho cieľom by malo byť oboznámenie čitateľov s týmto jazykom. Určite si ale nekladie za cieľ vyčerpávajúco a plne do detailov popísať tento jazyk, skôr uviesť čitateľa do problematiky, prípadne aby sa čitateľ naučil niečo si naprogramovať, teda nejaké „hobby“ programovanie. Kto bude mať záujem hlbšie preniknúť do jazyka, tak nebude mať problém na Internte vyhľadať si špecifikáciu pre štandard jazyka. Tento seriál bude popisovať najnovší štandard jazyka C++ a to C++ 14.

Čo je to C++

Autorom jazyka C++ je Bjarne Stroustrup, dánsky programátor, ktorý začal pracovať na tomto jazyku v roku 1979 v Bellových laboratóriách AT&T. Vtedy sa tento nový jazyk volal ešte „C with Classes“ (C s triedami), názov C++ dostal až v roku 1983. Jazyk C++ je multiparadigmový, teda podporuje procedulárne, objektové a generické programovanie. Nie je to plne objekotovo orientovaný jazyk, ako sa o ňom dosť píše. Samozrejme je multiplatformový, kompilátory sú dostupné pre rôzne operačné systémy a rôzne architektúry. Jazyk C++ je vhodný na systémové programovanie, pre embedded systémy, samozrejme pre kritické aplikácie, desktopové aplikácie, atď. C++ je štandardizovaný jazyk pracovnou skupinou ISO. Prvý štandard pre tento jazyk vyšiel v roku 1998 a je známy ako C++98. Momentálne aktuálny štandard je C++14 vydaný v roku 2014 a nadchádzajúci je očakávaný v roku 2017, predbežne nesie označenie C++17.

Budeme potrebovať

Pre účely seriálu vám bude stačiť ľubovolný textový editor (vim, emacs, kate, kwrite, gedit, notepad++, notepad) a kompilátor jazyka C++ (g++ z gcc, clang, Intel C++). Najlepšie je použiť čo najnovšiu verziu kompilátora, kvôli lepšej podpore štandardu C++ 14. Pre gcc na začiatok aspoň verzia 4.8, pre clang 3.4. Viac informácii o tom, čo ktorý a ktorá verzia kompilátora podporuje zo štandardu možno nájsť na stránke http://en.cppreference.com/w/cpp/compiler_support. Na editáciu kódu nepoužívajte rôzne richtext editory (MS Word, LibreOffice Writer,…). Pre tento seriál budem používať kompilátor g++ z gcc, verzia 5.2.0. K tomu budu prispôsobené aj príkazy pre kompiláciu príkladov. Pre efektívnejšiu prácu ale doporučujem použiť nejaké Integrated development enviroment, teda IDE. Je to aplikácia, ktorá v sebe už obsahuje editor, nástroje na automatickú kompiláciu, debugger a iné užítočné nástroje. Na základe skúseností môžem doporučiť môžem Qt Creator, Clion od Jetbrains, MS Visual Studio (aspoň verziu 2013). K používaniu IDE sa zatiaľ v tomto seriály nebudeme venovať.

Ukážka

Je zvykom začať seriál o nejakom programovacom jazyku malou ukážkou programu. Nebudeme ani my vyčnievať z radu a ukážeme si klasický prvý program Ahoj, svet! Zdrojový kód je veľmi jednoduchý, stačí ho prekopírovať, alebo prepísať do textového editora: ahojSvet.cpp:

#include <iostream>

using namespace std;

int main(int argc, char** argv) {
	cout << "Ahoj, svet!“ << endl;
	return 0;
}

Súbor uložíme pod názvom ahojSvet.cpp a v príkazovom riadku (shell) zadáme príkaz:

g++ ahojSvet.cpp -o ahojSvet

Kompilátor g++ nám preloží zdrojový kód v súbore ahojSvet.cpp do spustiteľného súboru ahojSvet. Tento potom už len spustíme príkazom:

./ahojSvet

Na obrazovke sa nám zobrazí text Ahoj, svet!. Čo znamenajú jednotlivé riadky v zdrojovom kóde si vysvetlíme v ďalšej časti seriálu.

    • RE: C++ I. Úvod 10.10.2015 | 18:12
      Avatar vxmery Mint 21.3 Cinnamon  Používateľ

      Super nápad. Keď sudičky rozdávali programátorskú gramotnosť, na mňa sa zjavne vyprdli.

    • RE: C++ I. Úvod 10.10.2015 | 20:03
      Avatar bedňa LegacyIce-antiX  Administrátor

      Jupííííííííí, to som rád že si sa k tomu odhodlal, zas oprášim C++. Je tam chybička s úvodzovkami, možno to len pokazilo CMSko. Nechcem ti do toho zasahovať, ale ak chceš, tak ti takéto maličkosti môžem opravovať.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: C++ I. Úvod 10.10.2015 | 20:07
        Avatar borg Fedora  Administrátor

        aha, fakt. uvodzovky, diky. jasne, ak najdes nejaku chybu, kludne fixni :)

        • RE: C++ I. Úvod 10.10.2015 | 20:15
          Avatar bedňa LegacyIce-antiX  Administrátor

          OK, všimol som si že si fixol aj <iostream> ;)

          Tak sa teším na pokračovanie, dal som to medzi Linuxové blogy, takže sa to zobrazuje medzi článkami.

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: C++ I. Úvod 12.10.2015 | 12:26
      Avatar Livan Manjaro s XFCE  Používateľ

      Pretože predpokladám, že to má byť seriál pre úplných začiatočníkov, bolo by fajn aj komentovať jednotlivé príkazy aby bolo jasné, prečo sa to tam dáva. Ako príklad uvediem použitie príkazu "using namespace std;" alebo "include <iostream>". Toto zhodou okolností viem ale nemusia to vedieť všeci.

    • RE: C++ I. Úvod 12.10.2015 | 12:33
      Avatar borg Fedora  Administrátor

      no pre uplnych zaciatocikov to asi nebude, na to nemam sily popisovat vsetko do detailov. bude to volny serial, nebude mat za ciel urobit zo zaciatocnika profesionala. Takisto si vyhradzujem pravo zabudnut popisat nieco, co by malo byt popisane. inak v druhej casti je vyznam riadok popisany. serial je vedeny ako blog, nie ako komercny plateny clanok s pozadovanou kvalitou. budu to len zapisky, opis...

      • RE: C++ I. Úvod 12.10.2015 | 14:15
        Avatar Livan Manjaro s XFCE  Používateľ

        No je jasné, že vďaka jednomu seriálu o C++ sa začiatočník profíkom nestane ale mierne pokročilým by sa stať mohol. Pre profíkov je tento seriál asi zbytočný, takže keďže sa dohodnime, že je to skôr pre začiatočníkov, minimálne na začiatku by ten bližší popis významu tých príkazov bol namieste, aby aj začiatočníci chápali, ako je to celé vystavané.

        • RE: C++ I. Úvod 12.10.2015 | 14:23
          Avatar bedňa LegacyIce-antiX  Administrátor

          Keď si prečítaš koniec, je tam:

          Na obrazovke sa nám zobrazí text Ahoj, svet!. Čo znamenajú jednotlivé riadky v zdrojovom kóde si vysvetlíme v ďalšej časti seriálu.
          Inak máme tu aj komentáre a dá sa spýtať ak niečo nie je jasné.

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: C++ I. Úvod 12.10.2015 | 14:40
            Avatar Livan Manjaro s XFCE  Používateľ

            Ten text som si všimol až som mal prvú reakciu napísanú. Len som tým chcel povedať, že by bolo dobré to vysvetlenie dávať ihneď, keď sa niečo nové objaví. Alebo to má byť štýlom ako v telenovelách, kde v najlepšom sa diel preruší aby každý týždeň netrpezlivo čakal ako sa situácia vyrieši? Ale nič, to je samozrejme na autorovi, len som sa snažil dávať konštruktívnu kritiku a námety na zlepšenie.

            • RE: C++ I. Úvod 12.10.2015 | 15:55
              Avatar bedňa LegacyIce-antiX  Administrátor

              Aspoň sa budeš tešiť na ďalší diel telenovely :) Inak čo sa týka kritiky, tá ešte nikoho nezabila.

              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: C++ I. Úvod 14.10.2015 | 10:03
      Avatar fillodendron   Návštevník

      Podľa slovenskej gramatiky sa v slovách končiacich na -r alebo -l píše v šiestom páde jednotného čísla i a nie y.  Teda nemá to byť "Vitajte pri novom seriály", ale "Vitajte pri novom seriáli"...

      • RE: C++ I. Úvod 14.10.2015 | 10:49
        Avatar borg Fedora  Administrátor

        opravene

    • RE: C++ I. Úvod 16.10.2015 | 18:07
      Avatar Livan Manjaro s XFCE  Používateľ

      Mám iba technický dotaz - ako často budú cca pribúdať jednotlivé časti, pretože ma to veľmi zaujíma a som celý nedočkavý. Bude to v pravidelných intervaloch alebo skôr sporadicky?

      • RE: C++ I. Úvod 16.10.2015 | 21:44
        Avatar borg Fedora  Administrátor

        plan je raz tyzdenne, hoci moze stat, ze obcas raz za dva tyzdne

      • RE: C++ I. Úvod 16.10.2015 | 22:59
        Avatar borg Fedora  Administrátor

        ak ťa to dosť zaujíma a nechceš čakať, tak doporučujem aby si si zadovážil nejakú knihu o C++. Sú aj v čestine, napr. Mistrovství v C++ (dobrá kniha), prípadne Naučte se C++ za 21 dní (nečítal som, ale bude to asi základ).

        • RE: C++ I. Úvod 17.10.2015 | 16:57
          Avatar Livan Manjaro s XFCE  Používateľ

          Samozrejme, že nejaké knihy som si zadovážil. Zatiaľ mám Objektově orientované programování v C++, vydavateľstvo Kopp. Jedná sa o veľmi stručný prehľad a je dosť stará. Mám ju už cca 10 rokov. Akurát dnes mi prišla druhá kniha Grafická uživatelská rozhraní v QT a C++, vydavateľstvo Computer Press. A ešte mám vo výhľade knihu Mistrovství v C++, Stephen Prata, Computer Press 2013. Tú si asi kúpim pod stromček. Väčšina týchto kníh má z môjho pohľadu jeden nedostatok - a síce, že sú orientované na programovanie pod Windows alebo naopak iba veľmi obecne v C++ bez väzby na grafické rozhranie. Preto som si kúpil tu druhú knihu, QT by malo byť použiteľné multiplatformne, teda i v linuxe i vo windows. Takže vidíš, že to s tým C++ myslím smrteľne vážne.

          • RE: C++ I. Úvod 17.10.2015 | 17:22
            Avatar borg Fedora  Administrátor

            Mistrovsti v C++ a Graficka uzivatelska rozhrani v QT a C++ je dobra kombinacia.