fork download
  1. #include <iostream>
  2.  
  3. class Foo {
  4. public:
  5. int x;
  6. virtual void print();
  7. };
  8.  
  9. class Bar: public Foo {
  10. public:
  11. int y;
  12. virtual void print();
  13. };
  14.  
  15. void Foo::print() {
  16. std::cout << "x: " << this->x << '\n';
  17. }
  18.  
  19. void Bar::print() {
  20. std::cout << "x: " << this->x << " y: " << this->y << '\n';
  21. }
  22.  
  23. void print(Foo foo) {
  24. foo.print();
  25. }
  26.  
  27. void print2(Foo &foo) {
  28. foo.print();
  29. }
  30.  
  31. void print3(Foo *foo) {
  32. foo->print();
  33. }
  34.  
  35. int main() {
  36. Bar bar;
  37. bar.x = 5;
  38. bar.y = 10;
  39.  
  40. print(bar);
  41. print2(bar);
  42. print3(&bar);
  43. }
Success #stdin #stdout 0s 4268KB
stdin
Standard input is empty
stdout
x: 5
x: 5 y: 10
x: 5 y: 10