잘 못된 구식 코드에 새로운 기능을 추가해야합니다. 화면에 표시하고 처리해야하는 50 가지 목록이 있으며, 현재 코드는 모두 2 가지 유형 (DAO 데이터베이스의 목록과지도의 다른 목록)의 사소한 수정으로 모두 잘라내어 붙여 넣기됩니다.다른 값 유형을 가진 맵을 C++의 함수에 전달
필자는 기능을 제공하는 검색 클래스와 검색에 필요한 기본 기능을 제공하는 각 목록 유형의 도우미 클래스를 작성했습니다. 지도 도우미 클래스는 tstring Key에 대한 액세스 만 필요로하며 다른 Object 값은 필요하지 않습니다. 그러나 나는 이것을 컴파일 할 수 없다.
다양한 서로 다른 개체가 관계가 없기 때문에 기본적으로 비어있는 SearchValue 클래스를 정의하고 모든 다른 개체 클래스의 수퍼 클래스로 .h에 추가했습니다. 일례로서
여기지도 정의 중 하나이고 :
class MyPatListEntry : public SearchValue {
및 I의 함수로서 정의 :
typedef map<tstring, MyPatListEntry *, tstringcomp> patlist;
MyPatListEntry이 정의
ListHelper(map<tstring, SearchValue *> *map, CString fieldName)
컴파일러 (VC++)는 ListHelper()에 대한 정의가 모든 인수를 처리하지 못한다는 오류를 제공합니다. 정의에서 SearchValue를 MyPatListEntry로 바꾸면 컴파일이 작동하므로 기본 형식이 정확합니다.
저는이 사이트를 둘러 보았고 이러한 유형의 기능 템플릿을 제안하는 사람들이 작동한다고 생각했지만이 방법으로 작동하지 않는 이유가 있는지 궁금합니다.
아무쪼록 고맙습니다.
'MyPatListEntry'가'SearchValue' 타입이지만'map'는 'map '타입이 아닙니다. –
Dialecticus