Design a C++ class hierarchy for representing different geometric shapes such as Circle, Square, and Triangle. Each shape should have parameters such as radius, side length, or base and height, depending on the shape. Additionally, each shape should implement a common method called GetArea to calculate and return its area.