It depends what OtherPortal is defined as. Classes that share the same base class can use a pointer of that base type and be fine.
If I have 2 classes, Car and Boat, and both inherit from a class called Vehicle - then my Vehicle pointer can be assigned to either a Car or a Boat. However, if I want to turn that Vehicle pointer into a Car/Boat, I need to cast it. This is called upcasting (implicitly casting to a base/parent class) and downcasting (explicitly casting to a child class).