POO

Cards (351)

  • Funcții ca părți ale unor structuri (funcții membre)
    Denumite și funcții membre sau metode, implicit publice, nu cresc dimensiunea tipului de date, acces direct la câmpurile structurii
  • Exemple de funcții membre în C++
    • modificare(int xx, int yy)
    • afisare()
  • Operatorul de rezoluție "::"
    Permite accesul la un indicator cu domeniu fișier, dintr-un bloc în care acesta nu e vizibil
  • Separarea codului în zona de definiție și cea de implementare
    1. Definirea structurii cu câmpurile și funcțiile necesare
    2. Implementarea funcțiilor
  • Funcții inline

    Substituie apelul funcției cu codul ei, pentru o execuție mai rapidă
  • Argumente de funcții cu valori implicite

    Se pot apela funcții cu mai puține argumente decât cele din declarație, dacă au parametri cu valori implicite (default)
  • Parametrii impliciti trebuie să se găsească la finalul listei de parametri
  • Supradefinirea funcțiilor (overload)

    În C++ pot exista în același program mai multe funcții cu același nume, dar semnătură diferită
  • Tipul referință

    Un tip de date nou introdus în C++ pentru transmiterea parametrilor prin referință (pass-by-reference)
  • Necesită atenție sporită deoarece erori de editare generează erori logice greu de detectat
  • &
    Operator de referențiere (adresare)
  • *
    Operatorul de dereferențiere (indirectare)
  • Se operează direct la adresele lor
  • La ieșirea din funcție au valorile modificate
  • majoreaza
    Incrementează valoarea variabilei cu 5
  • Referința la x e primită ca argument
  • Nu se face o copie a lui x, ci se lucrează direct la adresa acelei variabile
  • O referință nu poate exista singură (int &ref) - se referă la ceva/cineva -> trebuie inițializată!
  • Când operatorul & este utilizat împreună cu o variabilă, expresia înseamnă "adresa variabilei indicate de referință"
  • Un pointer (int *pint) poate exista separat și poate fi "refolosit"
  • O referință poate fi văzută ca un alias al unei variabile
  • O referință nu poate fi refolosită pentru o altă variabilă
  • const
    (în C++) Modificator de tip - declară o constantă de un anumit tip
  • Modificarea ulterioară a valorii acestor variabile este interzisă
  • const (în funcții)

    Informează funcția că nu are voie să modifice valoarea argumentului, poate doar să o folosească
  • const (în funcții membre)
    Specifică faptul că funcția respectivă nu modifică (nu alterează) câmpurile de date ale variabilei de tip structură care o va folosi, ci doar le citește sau utilizează
  • Prezența parantezelor pătrate "[ ]" în alocare (new) necesită prezența lor la eliberare (delete)
  • Lipsa în zona eliberării a "[ ]" duce la eliberarea incompletă a memoriei (doar prima locație - cea care corespunde elementului de pe poziția 0 - este eliberată)
  • bool
    Tip de date care poate lua valorile true (1) sau false (0)
  • Funcțiile cu semnături diferite sunt supradefiniri ale funcției
  • Funcțiile cu semnături identice nu pot face parte din același program
  • Funcțiile cu semnături diferite pot face parte din același program
  • Alocarea dinamică a unei matrice
    1. Aloc spațiu pentru un vector de pointeri la T
    2. Pentru fiecare element din vector, aloc spațiu pentru un vector de T
  • După eliberarea memoriei ocupate de matrice, încercarea de a accesa elementele matricei duce la afișarea a ceea ce se găsește la acea adresă
  • Pentru a evita accesarea memoriei eliberate, se setează pointerul la NULL după eliberare
  • using - cuvântul cheie - se poate folosi ca directivă pentru introducerea în zona de lucru a unui întreg namespace
  • using și using namespace - sunt valabile doar în blocul în care au fost menționate sau în întregul cod dacă au fost folosite în manieră globală
  • Namespace alias
    Declarare de nume alternative pentru namespace-uri existente
  • Namespace std - toate fișierele din biblioteca standard C++ își au declarate variabilele/obiectele necesare în namespace-ul std
  • includem biblioteca <iostream> si apoi precizam ca avem nevoie de obiectele declarate in std (using namespace std), aici fiind declarate obiectele cin si cout (sau le utilizam astfel std::cin/std::cout). endl e tot o variabila din std.