fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Animal {
  5. public:
  6. virtual void sound() {
  7. cout << "Animal sound\n";
  8. }
  9. };
  10.  
  11. class Dog : public Animal {
  12. public:
  13. void bark() {
  14. cout << "Woof!\n";
  15. }
  16. };
  17.  
  18. class Cat : public Animal {
  19. public:
  20. void meow() {
  21. cout << "Meow!\n";
  22. }
  23. };
  24.  
  25. int main() {
  26. Animal* a = new Dog();
  27.  
  28. Dog* d = dynamic_cast<Dog*>(a);
  29.  
  30. if (d != nullptr) {
  31. d->bark();
  32. } else {
  33. cout << "Not a Dog\n";
  34. }
  35.  
  36. delete a;
  37. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
Woof!