Sunteți pe pagina 1din 6

Grupa 153 Proiectare gi programare orientate pe obiecte Examen scris

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.

Descriefi pe scurt diferenta dintre o clasii gi un obiect.

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

};

VIII. Descriefi pe scurt crearea dinamice de obiecte.

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.

Descrieti pe scurt proprietgtile unui cimp static a1 unei clase.

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;

XVII. -Descriefipe scurt diferenfa dintre polimorfismul de compilare 9i cel de executie.

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;

S-ar putea să vă placă și