fork download
  1. #include <iostream>
  2.  
  3. class BaseClass
  4. {
  5. public:
  6. virtual void f() const;
  7. };
  8.  
  9. void BaseClass::f() const
  10. {
  11. std::cout << "In base class function\n";
  12. }
  13.  
  14. class DerivedClass: public BaseClass
  15. {
  16. public:
  17. void f() const override;
  18. };
  19.  
  20. void DerivedClass::f() const
  21. {
  22. std::cout << "In derived class function\n";
  23. }
  24.  
  25. int main()
  26. {
  27. DerivedClass derived_object;
  28. BaseClass &base_object = derived_object;
  29. BaseClass *base_object_ptr = &derived_object;
  30.  
  31. base_object.f();//вызовет f, определённый в суперклассе
  32. base_object_ptr -> f();//вызовет f, определённый в наследнике
  33. return 0;
  34. }
Success #stdin #stdout 0s 4564KB
stdin
Standard input is empty
stdout
In derived class function
In derived class function