headerphoto

Úvod do C++

Tento jazyk je nadstavbou programovacího jazyka C. Bjarne Stroustrup jej upravil a obohatil a tak vznikl nový, objektově orientovaný programovací jazyk C++. Základním principem jazyka C je procedurální programování, v jazyce C++ jde především o objektové programování. Není vhodné tyto dva principy kombinovat v jednom programu.

Jazyk C můžeme až na pár výjimek považovat za podmnožinu jazyka C++. Budeme tedy vycházet z toho, že to, co už známe z jazyka C, můžeme (většinou) použít v C++.

Nové prvky v C++

Datový typ bool pro práci s logickými hodnotami, může nabývat hodnotu true (pravda) nebo false (nepravda). Funguje automatická konverze pro celá čísla. Nula je považována za nepravdu, jakákoliv nenulová hodnota za pravdu.

Proměnné můžeme deklarovat kdekoliv v programu (v jazyce C jenom na začátku bloku). Proměnná potom platí jen v té části kódu, kde je deklarována např. jenom v cyklu.

Pro vstup a výstup používáme datové proudy cin a cout. Základní použití je jasné z následujícího příkladu. Více prostoru jim budeme věnovat v další kapitole.

    #include <iostream>
    using namespace std;
    
    int main()
    {
       int x;
       
       cout << "Zadejte cislo: " ;
       cin >> x;
       
       cout << "Druha mocnina: "  << x*x << endl;
    
    }
   

Máme k dispozici třídu string pro práci s řetězci. String není pole znaků, ale jednotlivé znaky lze vybírat pomocí [index]. Stringy jsou "nafukovací", lze je bez předeklarování prodlužovat. Je možno (na rozdíl od céčkovského pole znaků) přiřazovat je jako celek operátorem =, řetězit operátorem + nebo +=, porovnávat relačními operátory apod. Navíc je pro ně k dispozici řada funkcí. Konstanty zapsané v uvozovkách lze kombinovat s céčkovskými řetězci i se stringy.

string s1 = "Hello";
string s2 ("world");
string s3 = s1 + ", " + s2 + "!\n"; //řetězec s3 bude "Hello, world!\n"

int delka = s3.size();     //nebo s3.length()
int pos1 = s3.find("ll");   // Vrátí pozici začátku podřetězce ll v s3, tj.2

s1 = s1.substr(0,4);     // 4 znaky počínaje nultým, tj. "Hell"
s3 = s3.replace(0,5,"Ahoj"); // Nahradit lze i podřetězcem jiné délky


Funkce:
- funkce main() nemusí mít návratový typ int, ale může to být taky void.
- když v C-éčku neuvedeme u funkce typ návratové hodnoty, implicitně se doplní int. V jazyce C++ se automaticky doplní void.
- pro parametry funkce můžeme nastavit implicitní hodnoty, tyto parametry potom u volání funkce nemusíme používat
- můžeme vytvořit a používat několik funkcí se stejným názvem, musí se lišit počtem nebo typem parametrů. Jedná se o tzv. přetěžování funkcí.
- pro parametry můžeme používat reference, jedná se o podobný princip jako použití ukazatelů



Design downloaded from Free Templates - your source for free web templates