I understand that initialization of Shape depends on function bBoxMaxX() which depends on initialization of member b. Since base class Shape is initialized before member b the code will not work correctly.
The solution is to have a bBoxMaxX() function that uses the initializing variables _b. Or a initializer for Shape that uses _b directly. For example:
Triangle::Triangle(Vector _a, Vector _b, Vector s, Point o) : Shape(o, new RectilinearAnimationStrategy(s, bBoxMaxX(_b), bBoxMinX(_b), bBoxMaxY(_b), bBoxMinY(_b))), a(_a), b(_b) {}