C++ - Что выведет следующий код? | ProgHub
Что выведет следующий код?
#include <iostream> 
 
class A 
{ 
public: 
 virtual void foo() { std::cout<<"A::foo()\n"; } 
 virtual void bar() { std::cout<<"A::bar()\n"; } 
 void printFoo() { foo(); } 
 void printBar() { A::bar(); } 
}; 
 
class B: public A 
{ 
public: 
 void foo() { std::cout<<"B::foo()\n"; } 
 void bar() { std::cout<<"B::bar()\n"; } 
}; 
 
int main() 
{ 
 A* a = new B; 
 a->printFoo(); 
 a->printBar(); 
 
 return 0; 
}
A::foo() A::bar()
B::foo() A::bar()
B::foo() B::bar()