Documente Academic
Documente Profesional
Documente Cultură
Examen Programare II - Grila2
Examen Programare II - Grila2
class Complex {
double re, im;
public:
static int nr;
Complex(double re=0, double im=0): re(re), im(im){
nr++;
}
Complex(const Complex &c): re(c.re), im(c.im) {
nr++;
}
~Complex() {
nr--;
}
Complex operator+(Complex c) {
cout << nr << '\t';
Complex rez;
rez.re = re + c.re;
rez.im = im + c.im;
_getch();
return 0;
}
1
Ce se va afişa pe ecran după execuţia funcţiei main()?
a) 3 3 4 3 b) 2 2 3 2
c) 3 4 5 3 d) 3 3 4 4
class B{
A a1;
public:
B(A a): a1(a) {
cout << "B(A a)" << endl;
}
};
int main() {
A a;
B b(a);
_getch();
}
2
c) d)
A() A()
A(A&) A()
A(A&) A(A&)
B(A a) A(A&)
B(A a)
int main()
{
ClasaB *tab[2] = {
new ClasaB(), new ClasaA()
};
tab[0]->f();
tab[1]->g();
((ClasaA *)tab[1])->h();
delete tab[0];
delete tab[1];
_getch();
return 0;
}
3
a) Programul va avea erori de compilare b)
pentru ca elementele tabloului nu au acelaşi tip ClasaB.f()
(Clasa B). ClasaA.g()
ClasaA.h()
c) Nu se poate apela metoda h() pentru ca ea d)
nu face parte din interfaţa comuna ambelor ClasaB.f()
clase. ClasaB.g()
ClasaA.h()
class B: public A{
private:
int z;
public:
B(){
z = 0;
cout << "B()" << endl;
}
B(int x): A(x) {
z = 2 * x;
cout << "B(int)" << endl;
}
~B() {
cout << "~B()" << endl;
}
};
4
class C: public B {
protected:
int y;
public:
C(){
y = 0;
cout << "C()" << endl;
}
C(int x) {
y = x;
cout << "C(int)" << endl;
}
~C() {
cout << "~C()" << endl;
}
};
int main() {
A* pa = new C(5);
pa -> f();
pa -> g();
pa -> h();
delete pa;
B * pb = new C(6);
pb -> f();
pb -> g();
pb -> h();
_getch();
return 0;
}
5
A() A()
B() B()
C(int) C(int)
C::f() C::f()
C::g() C::g()
B:h() B:h()
~C()
~B()
~A()
c) d)
A() A()
B() B()
C(int) C(int)
C::f() C::f()
C::g() C::g()
A:h() A:h()
~C() ~C()
~B() ~B()
~A() ~A()
A() A()
B() B()
C(int) C(int)
B::f() B::f()
B::g() B::g()
B:h() B:h()
~C()
~B()
~A()
class B: public A{
public:
B(){
cout << "B()" << endl;
6
}
B(int x): A(x) {
cout << "B(int)" << endl;
}
~B() {
cout << "~B()" << endl;
}
};
class C: public A{
public:
C(){
cout << "C()" << endl;
}
C(int x): A(x) {
cout << "C(int)" << endl;
}
~C() {
cout << "~C()" << endl;
}
};
int main() {
D d(5);
_getch();
return 0;
}
7
~A()
c) d)
A(int) A()
C(int) B()
A() C(int)
B() D(int)
D(int) ~D()
~D() ~C()
~B() ~B()
~A() ~A()
~C()
~A()