Examen PPOO
Examen PPOO
class Clasa1
{
public:
Clasa1(){ cout<<"C1::C1()"<<endl;}
};
class Clasa2
{
public:
Clasa2() { cout<<"C2::C2()"<<endl;}
};
class System
{
Clasa1 ob1;
Clasa2 ob2;
public:
System() { cout<<"S::S()"<<endl;}
};
int main (int argc, char* argv[])
{
System a;
return 0;
}
#include <iostream>
Raspuns:
C1::~C1()
C2::~C2()
S::~S()
4. Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este efectul apelarii
metodei Create(), ce varianta a functiei se va apela si ce se afiseaza pe ecran? 10pct
class A
{
protected:
int dim;
public:
A(){ cout<<"A::A()"<<endl;}
class B: public A
{
public:
B(){ cout<<"B::B()"<<endl;}
virtual ~B(){ cout<<"B::~B()"<<endl;}
A* p = new B();
p->Create( );
delete p;
return 0;
}
Raspuns:
A::Create(16)
class A{
public:
void m(){cout<<"A:m()"<<endl;};
virtual void v(){cout<<"A:v()"<<endl;};
};
class B: public A{
private:
void m(){cout<<"B:m()"<<endl;};
virtual void v(){cout<<"B:v()"<<endl;};
};
void main(){
A a,*p;
B b;
b.m();
b.v();
p=&b;
p->m();
p->v();
6.
7.
8. Fie urmatorul program: 5pct
#include <iostream.h>
class C{
public: C(int n=0, int v[]);
friend ostream& operator<<(ostream &o, const C&);
private: int dim; int *pi;
};
C::C(int n, int v[]) {
dim=n; pi= v;
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; j<m.dim; j++)o<< m.pi[j]<<" ";
return o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
a[0]=-100;
cout<<(x=y)<<endl;
}
Programul afiseaza:
10 20
9. 10pct
Raspuns : d)