Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Clase derivate

c


Clase derivate



Acum sa definim un vector pentru care un utilizator poate defini limitele indexului.

class vec:public vector;

Definind vec ca public vector inseamna inainte de toate ca un vec este un vector. Adica tipul vec are toate proprietatile tipului vector si in plus cele specific declarate pentru el. Clasa vector se spune ca este clasa de baza pentru vec si invers vec se spune ca este derivat din vector.

Clasa vec modifica clasa vector furnizind un constructor diferit care cere utilizatorului sa specifice cele doua limite ale indexului in schimbul dimensiunii si produce accesul propriu functiilor elem(int) si operator[](int).elem() a lui vec se exprima usor in termenii lui elem() al lui vector:

int& vec::elem(int i)

Scopul operatorului :: este de a elimina o recursivitate infinita calculind vec::elem() din el insusi. Unarul :: se poate folosi pentru a ne referi la nume nelocale. Ar fi rezonabil sa declaram vec::elem() inline din motive de eficienta, dar nu este necesar, sau este posibil sa-l scriem asa ca el sa utilizeze direct membrul privat V al clasei vector. Functiile unei clase derivate nu au nici un acces special la membri privati ai clasei de baza propri. Constructorul poate fi scris astfel:

vec::vec(int lb, int hb) : (hb-lb+1)

Constructia: (hb-lb+1) se utilizeaza pentru a specifica lista argument pentru constructorul clasei de baza vector::vector(). Acest constructor se apeleaza inaintea corpului lui vec::vec(). Iata un mic exemplu care poate fi executat daca se compileaza cu

restul declaratiilor lui vector:

#include <stream.h>

void error(char* p)

void vector::set_size(int)

int& vec::operator[](int i)

main()

cout << "\n";

vec b(10, 19);

for(i=0; i<b.size(); i++)

b[i+10] = a[i];

for(i=0; i<b.size(); i++)

cout << b[i+10] << " ";

cout << "\n";

}

Acesta produce:

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9



Document Info


Accesari: 969
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )