Lista unidirecțională - link-uri (link-uri) numai la următoarele elemente
dublu legătura - link-uri (link-uri) la elementele următoare și anterioare
Listă cu inele - ultimul element este asociat cu primul
Operații pe liste:
- formarea inițială (crearea primului element)
- adăugând un element la sfârșitul listei
- citirea unui element cu o cheie dată
- Introducerea unui element într-un anumit loc din listă (înainte sau după elementul cu cheia dată)
- Ștergerea unui element cu o cheie dată
- ordonarea listei prin cheie
Șabloane (clase parametrizate) - vă permit să creați familii de clase înrudite pe care le puteți aplica oricărui tip de date și să treceți acest tip ca parametru de clasă
șablon <параметр шаблона> clasă
Reguli pentru descrierea tiparelor:
- Șablonul local (îmbinat într-un șablon) nu poate conține șabloane ca argumente
- Șabloanele de clasă pot conține elemente statice, funcții prietenoase și clase
- Șabloanele pot fi obținute din ambele șabloane și clase și pot fi de bază pentru ele
- Nu puteți defini șabloane prietenoase într-un șablon
nume șablon <аргументы> nume_proiect [(design_parameters)]
listă
listă
32) Mecanism general de tratare a excepțiilor în C ++. Generarea și interceptarea excepțiilor. Lista excepțiilor de funcții.
O situație excepțională este apariția unui eveniment neprevăzut sau de urgență, care poate fi cauzat de utilizarea incorectă a echipamentului.
Mecanismul de excepție C ++ este destinat evenimentelor care apar ca urmare a programului în sine.
Stack apel - o serie de apeluri care au fost chemați, dar care nu au fost încă finalizate
Stivuirea este procesul de eliberare a memoriei de sub variabilele locale și returnarea controlului către funcția de apelare
Acțiunile bibliotecii C ++ în cazul generării de excepții:
1) o copie a parametrului de aruncare este creată sub forma unui obiect static care există până la procesarea excepției
2) în căutarea unui handler adecvat, stiva nu este strânsă; Sunt numiți distrugători ai obiectelor locale care ies din regiune
3) obiectul de excepție este transmis unui handler care are un parametru compatibil după tip
Un manipulator este considerat găsit dacă tipul obiectului specificat după aruncare:
- la fel ca în captura
- este derivat din captura specificată
- este un pointer care poate fi convertit prin reguli standard la cele specificate în captură
void f1 () arunca (int, char *)
Excepții în constructori: