그래픽스 공부하는 학생이 코딩하다 막혀서 c++ 객체지향에 대해 질문올림


class Object; 밑에 Sphere, Cube, Tetrahedron 등등 클래스를 상속시키고 (class Sphere : public Object { ... } 이런식으로)

물체들 관리할때는 Object* 타입으로 저장하면서 두 물체간 거리재는 함수를 만들고싶거든

예를들어 Sphere-Cube 거리 재는 함수, Sphere-Sphere 거리 재는 함수등등 페어마다 전부 다르게 구현해야하는데

함수를 어떻게 정의하는게 좋을까?


예전에 한번 짜보긴 했는데 virtual 함수 쓰기도 애매해보였고..

double distance(Object* object1, Object* object2); 에다가 일일히 dynamic_cast 해서 하위클래스로 분류한다음에 해당 pair에 맞는 함수 호출했거든

다른 좋은 방법이 있을지?? 조언좀