ProghubPH
Вопрос из теста C++ основы
C++ / junior

Что будет выведено на консоль?

 один вариант
#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
Что-то другое