Documente Academic
Documente Profesional
Documente Cultură
PPOO - Modeldesubiect Mai2009
PPOO - Modeldesubiect Mai2009
29 mai 2009
I.
Spunefi dacH programul de mai jos este corect. in caz afirmativ, spuneti ce afigeazg, in caz negativ spunefi de ce nu este corect.
#include<iostream.h> class A I protected: int x; public: A(int i) :x(i){ } int get-x() { return x; 1 1; class B: public A I public: B(int i) :A(i) { } B operatort(const B& b) {retcrn x+b.x; int main ( ) { B a ( 2 3 ) , b (-15) ; cout<<a+b; return 0;
1;
11.
Descriefi pe scurt cum este implementat mecanismul de control a1 tipului in timpul execufiei - RTTI.
111.
Spuneti dacH prograrnul de mai jos este corect. in caz afirmativ, spunefi ce afiyeaza, in caz negativ spunefi de ce nu este corect.
#include<iostream.h> class A I int x; public: A(int i=25) { x=i; 1 friend int& f(const A&); 1; int& f (const A& c) { return c.x; 1 int main ( ) I A a(15); cout<<f (a); return 0;
IV.
Spuneti dacii programul de rnai jos este corect. in caz afirmativ, spuneti ce afigeazii, in caz negativ spuneti de ce nu este corect.
#include<iostream.h> class A I int *v,dim; public: A(int i)
dim=i; v=new int[i]; for(int j=l; j < j++) ~ v[j]=j; } int size() { return dim; 1 friend int& operator [I (A, int) }; int& operator [](A a, int i) { return * (a.v+a.size ()-i) ; } int main ( ) I A a(10); a[3]=7; for (int i=O; i<a.size(); i+t) cout<<a[i]; return 0; 1
{
V.
VI.
Spuneti dace programul de rnai jos este corect. in caz afirmativ, spuneri ce afigeazi, in caz negativ spuneti de ce nu este corect.
#include<iostream.h> class A I int x; public: A(int i) :x(i) { } int get-x ( ) const { return x; } } ; class B: public A I int *y; public: B (int i) :A(i){ y=new int [i]; for(int j=0; j<i; j + + ) y[j]=l; B (B&); int& operator [](int i) { return y [i]; } 1; B::B(B& a) I y=new int [a.get-x ( ) 1 ; for (int i=0;i<a.get-x ( ) ;i++) y [i]=a [i]; 1 ostream& operator<<(ostream& 0, B a) i++) o<<a [il ; { for (int i=0;i<a.get-x ( ) ; return o;
1
int main ( ) I B b(5); cout<<b; return 0; 1
VII.
Spunefi dace programul de mai jos este corect. in caz afirmativ, spunefi ce afi~eazii, in caz negativ spunefi de ce nu este corect.
#include<iostream.h> class A { static int x; public: A(int i=l) { x=i; 1 int f(A a) { return x+a.x; 1 static int g() { return f (2) /2; int A::x=7; int main ( ) 1 cout<<A: : g ( ) ; return 0; 1
};
Spuneii dace programul de rnai jos este corect. in caz afirmativ, spunefi ce afigeazl_in car negativ spunefi de ce nu este corect.
#include<iostream.h> class A { protected: int x; public: A(int i=12) { int get-x() { class B: public A I public: B(int i):A(i) B (const A& a) int main ( ) I A a(9); B b(a1; cout<<b.get-x(); return 0;
x=i; 1 return x;
{I
{return a
X.
Spuneli dace programul de mai jos este corect. in caz afirmativ, spuneli ce afigeaze, in caz negativ spuneti de ce nu este corect.
#include<iostream.h> class A I protected: int x; public: A(int i=-16) { x=i; 1 virtual A f(A a) { return x+a.x; } void afisare(){ cout<<x; } 1; class B: public A I public: B(int i=3):A(i) i } B f (B b) { return xtb.x+l; } 1; int main ( ) { A *pl=new B, *p2=new A, +p3=new A(p1->f(*p2)); p3->af isare ( ) ; return 0; 1
XI.
XII.
Spuneji dace programul de mai jos este corect. in caz afirmativ, spunefi ce afi~eazi, in caz negativ spunefi de ce nu este corect.
#include<iostream.h> class A { public: int x; A(int i=O) { x=i; } A operator; cons^ A& a) { return A(x+a. x) ; ostream& operator<<(ostrean& o, A a) { o<<a.x; return o; template <class T> class B I T y; public: B() I } B(T i) { y=i; 1 B operator+ (B ob) { return B (ob.y+l); } void afisare(){ cout<<y; I I ; int main ( ) I B<int> bl(-15); B<A> b2(1); (bltb2).afisare ( ) ; return 0;
} )
};
Cc
XIII.
Spuneti dacil prograrnul de mai jos este corect. in caz afirmativ, spuneti ce afiqeaza, in caz negativ spunefi de ce nu este corect.
#include<iostream.h> class A { public: int x; A(int i=13) { x=i; 1 1; class B: virtual public A { public: B(int i=15) { x=i; 1 1; class C: virtual public A { public: C(int i=17) { x=i; 1 1; class D: public A { public: D(int i=19) { x=i; 1 1; class E: public B, public C, public D { public: int y; E(int i,int j) :D(i),B(j) y=x+i+j; 1 E(E& e) { y=-e.y; 11; int main ( ) { E el (-9,3), e2=el; cout<<e2.y; return 0;
XIV. Descrieti pe scurt funciiile $ablon $i dati exemplu de 3 situatii in care un ape1 de funciie NU genereazil o versiune a functiei dintr-un l~ablon disponibil pentru functia respectivil.
XV.
Spuneti daca programul de mai jos este corect. in caz afirmativ, spuneti ce afigeazii, in caz negativ spuneti de ce nu este corect.
#include<iostream.h> class A I const int x, y; public: A(int i, int j ) :x(i), ~ ( j ) int f ( ) { return xty; 1 1; int main ( ) I const A a(5,6); cout<<a. f ( ) ; return 0;
XVI. Spuneti dacZI programul de mai jos este corect. in caz afirmativ, spuneti ce afiqeazii, in caz negativ spunefi de ce nu este corect.
#include<iostream.h> class A I public: int x; A(int i=O) { x=i; 1 virtual A minus ( ) I return (1-x); 1 1 ; class B: public A I public: B(int i=O) { x=i; 1 void afisare() { cout<<x; } } ; int main ( ) I A *pl=new B (27); *pl=pl->minus( ) ; pl->afisare ( ) ; return 0;
XVIII. Spuneti dacl programul de mai jos este corect. in caz afirmativ, spuneti ce afiqeazii pentru o ~aloare intreagi citit5 egal5 cu 23,in caz negativ spuneti de ce nu este corect.
$include <iostream.h> int f (int y) I if (y%2) throw yt2.5; return y / 2 ;
1
int main ( 1 { int x; try
I
cout<<''Da-mi un numar: "; cin>>x; if (x%3) x=f (x); else throw x; cout<<"Nurnarul "<<x<<" e bun!"<<endl;
1
catch (int i) { cout<<"Numarul "<<i<<" nu e bun!"<<endl;
1
return 0;