fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. struct Animal {
  5. virtual void talk() = 0;
  6. };
  7.  
  8. struct Dog : Animal {
  9. void talk() override {
  10. std::cout << "guau guau" << std::endl;
  11. }
  12. };
  13.  
  14. struct Cat : Animal {
  15. void talk() override {
  16. std::cout << "miau miau" << std::endl;
  17. }
  18. };
  19.  
  20. int main() {
  21. auto x = Dog{};
  22. auto y = Cat{};
  23.  
  24. std::vector<Animal*> pets{&x, &y};
  25.  
  26. for(auto& pet : pets) {
  27. pet->talk();
  28. }
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0.01s 5528KB
stdin
Standard input is empty
stdout
guau guau
miau miau