The compiler rejects this:
class Base {}
class Derived : Base {}
void main()
{
Base* basePtr;
Derived* derivedPtr;
basePtr = derivedPtr; // ERROR
}
Is that really correct that it shouldn't be allowed?