Cunoștințe, prelegere, moștenire

Șabloane de clasă

Șablonul de clasă vă permite să specificați o clasă. parametrizată de tipul de date. Transmiterea unei clase de tipuri diferite de date ca parametru creează o familie de clase conexe. Cele mai utilizate șabloane se găsesc atunci când se creează clase de containere. Un container este numit o clasă. care este destinat să stocheze într-un fel datele organizate și să lucreze cu ele. Avantajul utilizării șabloanelor este că odată ce algoritmul de date este definit și depanat, acesta poate fi aplicat oricărui tip de date fără rescrierea codului.

Crearea de șabloane de clasă

Luați în considerare procesul de creare a unui șablon de clasă utilizând exemplul unei liste dublu legate. Din moment ce listele sunt adesea utilizate pentru a organiza date, este convenabil să descrieți lista ca o clasă și, deoarece este posibil să aveți nevoie să stocați date de diferite tipuri, această clasă trebuie să fie parametrizată.

Mai întâi, luați în considerare o versiune neparametrizată a clasei. Lista este alcătuită din noduri conectate printr-un pointer. Fiecare nod stochează un întreg care este cheia listei. Să descriem o clasă auxiliară pentru reprezentarea unui nod din listă:

Deoarece această clasă va fi descrisă în interiorul clasei care reprezintă lista, câmpurile pentru ușurința accesului din clasa externă sunt făcute publice. Acest lucru vă permite să faceți fără funcțiile de acces și schimbarea câmpurilor. Noi numim clasa List:

Să luăm în considerare implementarea metodelor de clasă. Metoda de adăugare alocă memoria pentru un obiect nou de tip Node și îl adaugă la listă, actualizând indicatorii la începutul și sfârșitul acestuia:

Metoda de căutare caută un nod cu cheia specificată și returnează un pointer la acesta în cazul unei căutări de succes și 0 dacă nu există un astfel de nod în listă:

Metoda insert introduce un nod în listă după nod cu cheia și returnează un pointer la nodul inserat. Dacă în listă nu există un astfel de nod, inserarea nu este efectuată și valoarea 0 este returnată:

Metoda de ștergere șterge nodul cu cheia specificată din listă și returnează adevărat dacă este șters cu succes și este fals. dacă nodul cu o astfel de cheie nu este găsit în listă:

Articole similare