Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

C


Index » educatie » » informatica » C
» Constructori


Constructori


Constructori

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