fork download
  1. #include <iostream>
  2.  
  3. template <class T>
  4. void TestDuck(T& duck)
  5. {
  6. duck.Walk();
  7. duck.Quack();
  8. }
  9.  
  10. class Duck
  11. {
  12. public:
  13. void Walk() { std::cout << "Walking...\n"; }
  14. void Quack() { std::cout << "QUACK!!!\n"; }
  15. };
  16.  
  17. class DuckSimulation
  18. {
  19. public:
  20. void Walk() { std::cout << "Simulated walking...\n"; }
  21. void Quack() { std::cout << "Simulated QUACK!!!\n"; }
  22. };
  23.  
  24. int main()
  25. {
  26. Duck d;
  27. TestDuck(d);
  28.  
  29. DuckSimulation sd;
  30. TestDuck(sd);
  31. }
  32.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
Walking...
QUACK!!!
Simulated walking...
Simulated QUACK!!!