我有三个形状类,,,,我Circle
有功能Square
ConvexPolygon
bool ShapesIntersect(const Circle& s1, const Circle& s2);
bool ShapesIntersect(const Circle& s1, const Square& s2);
// ... and the other 7 combinations
我想要一个多态函数
Matrix<bool> ComputeShapeIntersectionMatrix(
const vector<Shape>& shapes1,
const vector<Shape>& shapes2);
调用上面特定于形状的方法来填充交点矩阵。
我认为在 c++ 中不可能完全做到这一点,但我可以接受任何其他解决方案,只要我可以在不更改计算交集矩阵的代码的情况下添加新的形状类型。