CAD쪽의 프로그래밍을 하다 보니 ENTITY들의 VOLUME을 다뤄야 할 일이 많이 생깁니다. 그래서 VOLUME에 관한 클래스를 하나 작성할려고 마음먹고 코딩에 들어갔습니다. 우선은 VOLUME은 MIN , MAX를 가지고 있으므로, private: double m_minx , m_maxx; double m_miny , m_maxy; double m_minz , m_maxz; 를 멤머 변수로 두고 기본 생성자에서 멤버 변수들을 0으로 세트했습니다. 얼핏 볼때 문제가 없었지만 정점 하나를 포함하는 VOLUME과 아무것도 포함하지 않는 VOLUME 의 구별이 되지 않는 문제점이 드러났습니다. 이것은 상당히 큰 문제점이다. CIsVolume vol; vol.Add(CIsPoint3d(100 , 100 , 100)); 와 CIsVolume vol; vol.Add(CIsPoint3d(0 , 0 , 0)); vol.Add(CIsPoint3d(100 , 100 , 100)); 이 같은 결과를 가지게 됩니다. 이러한 문제를 해결하기 위해 고민끝에 매개변수를 수정하기로 했습니다. private: double m_x , m_y , m_z; double m_width , m_height , m_depth; 를 매개 변수로 두고 기본 생성자에서 m_x , m_y , m_z는 0으로 m_width , m_height , m_depth는 -1로 세트했습니다. m_width , m_height , m_depth의 값이 모두 -1일 경우에는 VOLUME이 아무것도 포함하지 않는다는 것을 의미합니다. 이렇게 수정함으로써 위에서 불거졌던 문제점을 해결할 수 있었습니다. 첨부 파일