Difference between revisions of "Programming Test"
(Created page with "==Что будет выведено в результате исполнения следующего кода== class A { public: A() {cout << "A";}...") |
|||
Line 1: | Line 1: | ||
==Что будет выведено в результате исполнения следующего кода== | ==Что будет выведено в результате исполнения следующего кода== | ||
− | class A | + | <code><pre>class A |
− | |||
{ | { | ||
− | |||
public: | public: | ||
A() {cout << "A";} | A() {cout << "A";} | ||
− | |||
~A() {cout << "~A";} | ~A() {cout << "~A";} | ||
− | |||
− | |||
− | |||
virtual void f() {cout << "fA";} | virtual void f() {cout << "fA";} | ||
− | |||
}; | }; | ||
− | |||
− | |||
class B : public A | class B : public A | ||
− | |||
{ | { | ||
− | |||
public: | public: | ||
− | |||
B() {cout << "B";} | B() {cout << "B";} | ||
− | |||
~B() {cout << "~B";} | ~B() {cout << "~B";} | ||
− | |||
− | |||
− | |||
virtual void f() {cout << "fB";} | virtual void f() {cout << "fB";} | ||
− | |||
}; | }; | ||
− | |||
− | |||
class C : public A | class C : public A | ||
− | |||
{ | { | ||
− | |||
public: | public: | ||
− | |||
C() {cout << "C";} | C() {cout << "C";} | ||
− | |||
~C() {cout << "~C";} | ~C() {cout << "~C";} | ||
− | |||
− | |||
− | |||
virtual void f() const {cout << "fC";} | virtual void f() const {cout << "fC";} | ||
− | |||
}; | }; | ||
− | |||
− | |||
int main(int argc, char* argv[]) | int main(int argc, char* argv[]) | ||
− | |||
{ | { | ||
− | |||
A* pA1 = new A(), *pA2 = new B(), *pA3 = new C(); | A* pA1 = new A(), *pA2 = new B(), *pA3 = new C(); | ||
− | |||
pA1->f(); | pA1->f(); | ||
− | |||
pA2->f(); | pA2->f(); | ||
− | |||
pA3->f(); | pA3->f(); | ||
− | |||
− | |||
delete pA1; | delete pA1; | ||
− | |||
delete pA2; | delete pA2; | ||
− | |||
delete pA3; | delete pA3; | ||
+ | return 0; | ||
− | + | }</pre></code> | |
− | + | #fAfBfA~C~B~A | |
+ | #AABACfAfBfA~A~A~A | ||
+ | #ABACAfAfBfA~C~B~A | ||
+ | #AABACfAfAfA~C~B~A | ||
+ | #ABAACfAfAfA~C~B~A | ||
+ | #AABACfAfBfA~C~B~A | ||
+ | #AABACfAfBfA~A~B~C | ||
+ | #ни один не подходит | ||
+ | #ошибка компилятора |
Revision as of 07:14, 11 March 2019
Что будет выведено в результате исполнения следующего кода
class A
{
public:
A() {cout << "A";}
~A() {cout << "~A";}
virtual void f() {cout << "fA";}
};
class B : public A
{
public:
B() {cout << "B";}
~B() {cout << "~B";}
virtual void f() {cout << "fB";}
};
class C : public A
{
public:
C() {cout << "C";}
~C() {cout << "~C";}
virtual void f() const {cout << "fC";}
};
int main(int argc, char* argv[])
{
A* pA1 = new A(), *pA2 = new B(), *pA3 = new C();
pA1->f();
pA2->f();
pA3->f();
delete pA1;
delete pA2;
delete pA3;
return 0;
}
- fAfBfA~C~B~A
- AABACfAfBfA~A~A~A
- ABACAfAfBfA~C~B~A
- AABACfAfAfA~C~B~A
- ABAACfAfAfA~C~B~A
- AABACfAfBfA~C~B~A
- AABACfAfBfA~A~B~C
- ни один не подходит
- ошибка компилятора