Ú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ů