C++ - Что будет выведено на консоль? | ProgHub
Что будет выведено на консоль?
#include <iostream> 
 
struct Base { 
 virtual void print() const { 
   std::cout << "Base" << std::endl; 
 } 
}; 
 
struct Derived: public Base { 
 virtual void print() const { 
   std::cout << "Derived" << std::endl; 
 } 
}; 
 
void f1(Base obj) { 
 obj.print(); 
} 
 
void f2(const Base* p_obj) { 
 p_obj->print(); 
} 
 
void f3(const Base& obj) { 
 obj.print(); 
} 
 
int main() { 
 Derived obj; 
 
 f1(obj); 
 f2(&obj); 
 f3(obj); 
 
 return 0; 
}
Derived Derived Derived
Base Derived Base
Base Derived Derived
Derived Derived Base
Что-то другое