假设我有一个基类“Shape”和派生类“Triangle”、“Square”和“Circle”。“Shape”的成员是一个int“shapeType”。如果shapeType==1,则为三角形。如果shapeType==2,那么它就是一个正方形。如果shapeType==3,则为圆形。如果有一种方法可以通过使用shapeType值“动态”向下转换为正确的派生类,我很想知道我只有一个曾经是派生对象的“Shape”对象。我知道我可以写一个硬编码的switch语句,大致如下:Triangle*t;Square*s;Circle*c;switch(shape->shapeType){case1