Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Obiectele au de obicei nevoie sa-si initializeze campurile sau sa aloce memorie dinamica in procesul crearii. Initializarea face obiectele operabile si reduce posibilitatea returnarii unor valori nedorite in timpul executiei. De exemplu, ce s-ar intampla in exemplul din laboratorul precedent daca am fi apelat functia arie( inainte sa fi apelat functia setValori()? Probabil am fi primit un rezultat nedeterminat deoarece nu a fost atribuita nici o valoare membrilor x si y
Pentru a evita aceasta situatie, o clasa poate include o functie speciala numita constructor. Constructorul este apelat in mod automat cand un obiect nou de tip clasa este creat. Declaratia constructorului este de forma:
nume_clasa(lista parametri); |
Declaratia se aseamana cu cea a unei metode, doar ca nu are tip returnat iar numele functiei este intotdeauna egal cu numele clasei.
Vom implementa clasa Dreptunghi din laboratorul precedent folosind un constructor:
// exemplu: clasa cu constructor #include<iostream> #include<conio.h> using namespace std; class Dreptunghi //definire constructor Dreptunghi::Dreptunghi(int paramLatime, int paramInaltime) int main () |
arie dr: 12 arie dr2: 30 |
Cum puteti observa, rezultatul acestui exemplu este identic cu cel anterior. Dar de data aceasta am eliminat functia membru setValori( , si am inlocuit-o cu un constructor care efectueaza o actiune similara. Initializeaza valorile latime si inaltime cu parametrii pe care ii primeste.
Remarcati ca acesti parametri sunt transmisi catre constructor in momentul in care obiectele sunt create:
Dreptunghi dr(3,4); Dreptunghi dr2(5,6); |
Constructorii nu pot fi apelati explicit, asa cum sunt apelate functiile membre obisnuite. Ei sunt executati doar atunci cand un nou obiect al clasei respective este creat.
Politica de confidentialitate |
Copyright © 2024 - Toate drepturile rezervate