C++やりたての頃はこういう鼻から悪魔の意味もわからなかった

#include <iostream>

class Base {
int i;
public:
virtual void print() const {
std::cout << "Base" << std::endl;
}
};

class Derived : public Base {
public:
void print() const {
std::cout << "Derived" << std::endl;
}
};

int main()
{
Base *p;

p = dynamic_cast<Derived*>(new Base);

p->print(); // ouch!
}