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
» Instantierea si distrugerea claselor derivate


Instantierea si distrugerea claselor derivate


Instantierea si distrugerea claselor derivate

Desi constructorul si destructorul clasei de baza nu sunt mosteniti, acestia au un rol si pentru clasa derivata.

Atunci cand o noua instanta a clasei derivate este creata, compilatorul apeleaza mai intai constructorul clasei de baza fara parametri, si pe urma constructorul clasei derivate.

Atunci cand instanta unei clase derivate este distrusa, compilatorul va apela mai intai destructorul clasei derivate, si mai apoi destructorul clasei de baza.

Alternativ, putem sa specificam ce constructor al clasei de baza trebuie apelat pentru orice constructor al clasei derivate. Folosind urmataorea sintaxa pentru a declara constructorul:

nume_clasa_derivata(parametri constructor)

: nume_clasa_de_baza (parametri constructor clasa de baza)

De exemplu:

// constructori si clase derivate

#include<iostream>

#include<conio.h>

using namespace std;

class Baza

Baza (int a)

class DerivataImplicit : public Baza



class DerivataParametric : public Baza

int main ()

Baza: fara parametri

DerivataImplicit: parametru int

Baza: parametru int

DerivataImplicit: parametru int

Remarcam ca atunci cand se creaza un obiect de tip DerivataImplicit, se apeleaza constructorul fara parametri al clasei Baza. Iar atunci cand se instantiaza DerivataParametric, se apeleaza constructorul cu parametru al lui Baza. Diferenta se datoreaza declaratiei constructorilor claselor DerivataImplicit si DerivataParametric

DerivataImplicit(int a) // nu s-a specificat constructorul bazei,

// se apeleaza constructorul implicit

DerivataParametric(int a) : Baza(a) // apeleaza constructorul bazei specificat








Politica de confidentialitate




Copyright © 2024 - Toate drepturile rezervate