Предположим, у меня есть что-то вроде следующего:
class Point : geometry {
...
Point(double x, double y) {
}
double distanceTo(Line) {
}
double distanceTo(Point) {
}
}
class Line : geometry {
...
Line(double x, double y, double slopex, double slopey) {
}
double distanceTo(Line) {
}
double distanceTo(Point) {
}
}
struct point_t {
double x, y;
}
struct line_t {
double x, y, slope_x, slope_y;
}
struct Geom_Object_t {
int type;
union {
point_t p;
line_t l;
} geom;
}
Мне интересно, как лучше определить таблицу диспетчеризации для такой функции, как
double distanceTo(Geom_Object_t * geom1, Geom_Object_t * geom2) {
}
Классы написаны на C ++, но функция distanceTo и структура должны быть расширены до C
спасибо