Documente Academic
Documente Profesional
Documente Cultură
Prelegere
Definirea claselor.
Funcții speciale Constructor și destructor
SUMAR
1. Generalități POO
2. Definirea claselor
3. Constructori. Tipuri de constructori
4. Destructor
5. Manevrarea dinamica a obiectelor
6. Implementarea tipului de date Array după modelul orientat pe obiect
§ Programare structurată
ØStructuri de date + Algoritmi = Program
§ Clasa Bicicletă:
⁃ atribute
⁃ tip cadru
⁃ dimensiunea roții
⁃ număr de viteze
⁃ metode
⁃ accelerează
⁃ frânează
dr. Silviu GÎNCU
Sintaxa definirii unei clase
void Time::PrintLong(){
cout << ((hour == 0 || hour == 12) ? 12 : hour % 12);
cout << ":" << (minute < 10 ? "0" : "") << minute;
cout << ":" << (second < 10 ? "0" : "") << second;
cout << (hour < 12 ? " AM" : " PM");
}
int main(){
Time t; //instantiaza obiectul t de tip Time
t.SetTime(13, 27, 6);
cout << "\n\nOra in format scurt dupa SetTime este ";
t.PrintShort();
cout << "\nOra in format lung dupa SetTime este ";
t.PrintLong();
t.SetTime(99, 99, 99);
cout << "\n\nDupa asignarea valorilor invalide:";
cout<< "\nOra in format scurt: ";
t.PrintShort();
cout << "\nOra in format lung: ";
t.PrintLong();
dr. Silviu GÎNCU }
Obiecte
§ Obiectul reprezintă o instanță a unei clase
§ Declararea obiectelor:
<nume_clasă> <nume_obiect>;
§ De-alocarea
⁃ la sfârşitul programului/funcţiei
⁃ prin apelul automat al destructor-ului
Obiectul
carte
class Time {
public:
Time(){hour=minute=second=0;
cout<<“Apel constructor\n”;}
…
};
…
Time z; z.PrintLong();
dr. Silviu GÎNCU
Constructori cu parametru
§ cu parametri ce nu iau valori implicite;
§ cu parametri ce iau valori implicite.
int main(){
Time t1; //toate argumentele implicite
t1 – reprezintă timpul 0:0:0
Time t2(2); //minute și second implicite
t2 – reprezintă timpul 2:0:0
Time t3(21, 34); //second implicit t3 – reprezintă timpul 21:34:0
Time t4(12, 25, 42); //toate valorile specificate t4 – reprezintă timpul 12:25:42
Time t5(27, 74, 99); //toate valorile eronate
}
Pentru tipul de dată Data calendaristică se definească o clasă care să conțină toate cele 3 categorii
de constructori descriși.