특정 유형의 인스턴스를 서로 비교할 수 있도록 여러 클래스를 만들어야합니다.코드에서 반복성을 피하면서 여러 C++ 클래스를 비교할 수있게 만들기
bool operator== (const T& L, const T& R) {return L.compare(R)==0;}
bool operator!= (const T& L, const T& R) {return L.compare(R)!=0;}
bool operator< (const T& L, const T& R) {return L.compare(R)<0;}
bool operator<= (const T& L, const T& R) {return L.compare(R)<=0;}
bool operator> (const T& L, const T& R) {return L.compare(R)>0;}
bool operator>= (const T& L, const T& R) {return L.compare(R)>=0;}
이는 다음과 같습니다
는 내가에있어 클래스의 이름으로 T를 교체, 각 클래스에 고유 비교 방법을 작성하고 각 클래스 정의에 다음 코드를 추가하는 방법에 대한 생각 그러나 반복적 인 종류. 더 일반적인 방법이 있습니까? 나는 그것을 위해 매크로를 작성할 수 있다고 생각합니다. T에서 그것을 매개 변수로 만들었지 만, 매크로는 지금 매우 복잡하지 않습니다. 그렇죠? 나는 또한 상속과 다형성에 대해 생각하고 그것에 대해 읽은 것에서 (아직 가상 클래스를 사용하고 있으며 C++을 처음 접했을 뿐이다.) 불필요한 런타임 오버 헤드를 도입하는 것처럼 보인다. 기본 클래스 포인터를 통해 유니폼에 액세스 할 필요가 없습니다. 매크로 또는 복사하여 붙여 넣기 이외의 다른 방법을 수행하는 더 좋은 방법이 있습니까?
@tacp,하지만 좋은 템플릿 기반을 마련 할 수 없습니다 솔루션 그래서 나는 경험이 많은 C++ 코더에게 그것이 실제로 어떻게 이루어 졌는지 묻고 싶다고 생각했다. – PSkocik