Descriere: Un tutorial folositor pentru cei care lucreaza in limbajul de programare C++
Download: -
Autor: Nu este specificat
Sursa (Link-ul oficial): -
Propria parere: Folositor
Tutorialul: Mai jos .
Termenul englezesc "subscript" desemneaza operatorul "[ ]", care este un operator binar ne-static. Al doilea operand al sau ("indexul") poate fi, practic, de orice tip. O linie de program de genul "a" va fi interpretata ca "a.operator[](b)".
Exemplu:
Code: Select all
#include <iostream.h>
#include <string.h>
class exemplu;
class persoana {
char nume[20];
double greutate;
friend exemplu;
public:
// initializarea unui obiect de tipul "persoana"
void init(char *p, double g) {
greutate=g;
strncpy(nume, p, 19);
nume[19]='\0';
}
// tipareste informatiile dintr-un obiect "persoana"
void tip(void) {
// se testeaza valoarea lui "this" deoarece "tip()"
// poate fi aplicat asupra rezultatului unui operator "[ ]"
// (care poate fi NULL)
if(this!=NULL)
cout<<"\n\tNume: "<<nume<<" Greutate: "<<greutate;
else cout<<"\nElement inexistent !!!";
}
};
class exemplu {
persoana sir[3];
public:
exemplu(void);
persoana *operator[](char *);
persoana *operator[](double);
persoana *operator[](int i) {
// testeaza apartenenta indexului la domeniul
// de valori corecte
if(i < 3)
return & sir[i];
else return NULL;
}
};
// initializeaza cele trei elemente ale lui "sir"
exemplu::exemplu(void) {
for(int i=0; i < 3; i++) {
char n[20];
double d;
cout<<"\nTastati un nume si o greutate: ";
cin>>n>>d;
sir[i].init(n, d);
}
}
// parcurge tot sirul cautand un element
// cu numele "string"
persoana *exemplu::operator[](char *string) {
for(int i=0; i < 3; i++)
if(strcmp(sir[i].nume, string)==0)
return &sir[i];
return NULL;
}
// parcurge sirul cautand un element
// cu greutatea "greutate"
persoana * exemplu::operator[](double greutate) {
for(int i=0; i<3; i++)
if(sir[i].greutate==greutate)
return &sir[i];
return NULL;
}
void main(void) {
exemplu e;
e["Andrei"]->tip();
e[67.3]->tip();
e[10]->tip();
}