Что будет выведено в результате исполнения следующего кода
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
- ни один не подходит
- ошибка компилятора