Wenn ich jetzt nicht alles über OOP vergessen habe, kannst du das doch. In Delphi ging so etwas mittels "as", ich bin sicher in C++ gibt es etwas vergleichbares. (explizites casten?)

Wenn mich nicht alles täuscht ist ja gerade das die Polymorphie (eine Variable für mehrere verschiedene Klassen), eine der wichtigen Eigenschaften von OOP.

Andererseits ist die Frage ob dir das soviel an Ersparniss von Schreibarbeit bringt.
Wie wäre es denn, wenn du den Zugriff rein über Methoden machst, die in der Basisklasse vorhanden sind und von object1-3 überschrieben worden sind? Zur Not machst du dann halt einige leere Methoden bei den kleineren Objekten.
Du hast eine einzige Aufrufart, und dich braucht es nicht kümmern, welches Objekt jetzt gerade durch den Pointer angesprochen wird, das übernimmt dann alles der Compiler..

(So.. schlagt mich wenn ich hier totalen Bockmist erzählt habe..)