dynamic cast

🧩 Syntax:
#include <iostream>

using namespace std;

class Animal {
public:
    virtual ~Animal() = default;
};

class Dog : public Animal {
public:
    void bark() { std::cout << "Woof!\n"; }
};

class Cat : public Animal {
public:
    void meow() { std::cout << "Meow!\n"; }
};

int main() {
    Animal* animal = new Dog();
    
    // Check if it's a Dog
    if (dynamic_cast<Dog*>(animal)) {
        cout<< "It's a dog!\n";
    }

    
    delete animal;
    return 0;
}