fork download
  1. #include <iostream>
  2.  
  3. struct Animal {
  4. virtual const char* say() { return "???"; }
  5. };
  6.  
  7. struct Fox : public Animal {
  8. const char* say() override { return "A ring ding ding"; }
  9. };
  10.  
  11. struct Cat : public Animal {
  12. const char* say() override { return "Meow"; }
  13. };
  14.  
  15. void whatDoesItSay(const char* name, Animal* animal) {
  16. std::cout << "The " << name << " says " << animal->say() << ".\n";
  17. }
  18.  
  19. int main() {
  20. Cat cat;
  21. Fox fox;
  22. whatDoesItSay("cat", &cat);
  23. whatDoesItSay("fox", &fox);
  24. }
  25.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
The cat says Meow.
The fox says A ring ding ding.