Documente Academic
Documente Profesional
Documente Cultură
şi programul de test:
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
a[0]= -100; cout<<x<<endl; cout<<(x=y)<<endl;
y.set(0,-1000); cout<<x<<endl; cout<<(x=x)<<endl;
}
Se cere:
a. să implementaţi operatorul de inserţie, astfel încât, spre exemplu, prin:
int a[]={1,-2,-30, 40}; C x(3,a); cout<<x;
să se afişeze: (1, –2, -30)
b. să precizaţi ce se afişează prin executarea programului de test şi să explicaţi rolul
constructorului implementat prin referinţă şi al operatorului de atribuire la obţinerea
acestor rezultate; (răspunsul fără explicaţii nu este luat în considerare);
c. Să presupunem că operatorul = este supraîncărcat prin:
C& C::operator=(C& x){
delete[] pi;
dim=x.dim; pi=new int[dim];
for(int j=0; j<dim; j++){pi[j]=x.pi[j];}
return *this;
}
Explicaţi rezultatele afişate de program în aceste condiţii, subliniind diferenţele faţă de
punctul b.