Punerea în aplicare în c

5.3.3. operațiuni de apel

În C ++ operare limbaj (metoda) este definită ca fiind unul dintre membrii clasei. Când apelați operațiunea utilizează aceeași notație ca și în atributele de manipulare: operare membru de selecție „->“ se aplică indicii corespunzătoare sunt:

valori ale parametrilor de funcționare pot fi unul de tip construit (int, float, char, etc.), sau tipurile de valori definite folosind typedef sau anumite clase de obiecte sau indicii variabile și constante enumerate tipuri sau indicii de obiect.

Nume atribut sau operație, este utilizat ca identificator în aplicarea metodei implicit se referă la membrii obiectului corespunzător căruia i se aplică operațiunii. În exemplul următor, x și y sunt atributele Shape clasei obiectului ce se deplasează se aplică funcționare:

Acest lucru este echivalent cu aplicarea acestui parametru implicit a cărui valoare este întotdeauna un pointer la obiectul la care se aplică operațiunea. Următorul fragment este echivalent cu programul anterior:

5.3.4. Utilizarea moștenire

În moștenirea ++ limbajul C a stabilit numai atunci când compilarea programului și nu poate fi modificat în timpul execuției sale. Comportamentul fiecărui obiect este complet determinat de clasa obiectului și același pentru toate obiectele din această clasă. Toate caracteristicile moștenire sunt aceleași pentru toate obiectele din fiecare clasă.

Lista superclasei (în cazul în care nu este goală) este indicată la începutul definiției fiecărei clase; Divizia este, de asemenea, numit o clasă derivată. Exemplul următor prezintă descrierea clasei Item și descrierea unei subclasă a clasei Forma și subclasele de Box Item și clasă Forma Circle:

Membrii superclasa (atribute și operații) sunt moștenite de către subclase (membrii definiți în superclasa sunt disponibile în toate subclasele sale). Membrii superclasa definit-o ca un privat, inaccesibil pentru operațiunile subclasele sale; operațiuni disponibile membrilor expirării termenului de amânare superclasei definite în ea și protejate ca public. Metodele definite într-o superclasă poate fi înlocuită în (unele) subclasele sale, în cazul în care acestea sunt definite ca virtuale (virtual). De exemplu, metoda de clasă Forma de scriere poate fi suprascrisă în subclase Box și Circle, deci este definit ca virtuale; și metode în subclase care nu este înlocuită, astfel încât să nu poată declara ca virtuale. În cazul în care definiția metodei virtuale ea conține „initializare“ la 0 (scriere virtuală void (culoare) = 0;), atunci acesta trebuie să fie înlocuite în fiecare subclasă de ea (această metodă se numește abstractă). Clasa care conține cel puțin o metodă abstractă, de asemenea, numit abstract. obiecte nu pot da naștere la clase abstracte (obiecte sunt definite doar pentru subclasele sale). În cazul în care toate metodele unei clase sunt definite ca abstracte, se spune că acest lucru (abstract) clasa defineste interfata. puse în aplicare în subclase.

În C ++ suportă moștenire multiplă. Fiecare clasă poate avea una sau mai multe superclase.

5.3.5. Dependențele de punere în aplicare

În funcție în C ++ sunt implementate folosind indicii sau prin facilități speciale. De exemplu, dependența de „relație mulți-la-unu“ între clase și Postul Group a implementat prin indicii:

Ori de câte ori potrivit adăugat (sau scos din aceasta) obligațiuni, ambele indicii trebuie modificate:

Metode Grupa :: add_item si Grupa :: remove_item pot schimba atributele clasei privat (private) Postul, deși acestea sunt definite în subclasa Grupul său, astfel cum acestea sunt definite ca fiind prietenoase (prieteni) pentru clasa element.

În acest exemplu, verificarea omis:
  1. Acesta nu este inclusă în graficul de grup deja un membru al acestui grup, caz în care este nevoie, din nou, pentru a include în grup;
  2. Nu este dacă să includă grupul de membru grafic al oricărui alt grup, caz în care nu poate fi inclus într-un grup și doriți să dea un mesaj pe ecran.

Uneori, asociat cu fiecare alte obiecte (dependente) includ așa-numitele clase colective. Ca un exemplu, ia în considerare această clasă de clasă ItemSet (set de obiecte):

Relațiile dintre clase și pot fi implementate utilizând clase speciale (fiecare astfel de obiect de clasă descrie relația dintre obiectele corespunzătoare claselor). În acest caz, atributele de clasă corespund atributelor în funcție le-a descris.

5.3.6. Modele în C ++

In limbajul C ++ și programare, eventual, parametric (programare cu utilizarea componentelor generice). Componentele generice (parametrizate) au proprietatea de adaptabilitate la situația specifică în care se utilizează această componentă, care permite dezvoltarea suficient de versatil și la componentele programelor de înaltă performanță în același timp (în special, obiecte).

programare parametrică în limbajul C ++ este pusă în aplicare prin intermediul unor șabloane (template). În C ++ definește două tipuri de modele: clase șablon și funcții șablon.

Șabloane clase pot fi folosite în multe feluri, dar cel mai evident este de a le folosi ca obiecte de memorie adaptive. Modele funcții pot fi folosite pentru determinarea algoritmilor parametrizate. Diferența principală a funcțiilor șablon din clasa șablon care nu are nevoie să-i spuneți compilator ce tipuri de parametri de funcții utilizate, el poate identifica în funcție de tipul de parametrii săi formale.

NYU / STL / STL.html. În cele din urmă, punerea în aplicare a versiunii curente este disponibil pe ftp://ftp.cs.rpi.edu/pub/stl STL.