본문 바로가기
Programming/C, C++

[C++, Error] unresolved overloaded function type

by 근육곰돌이 2019. 7. 22.
728x90

1. 문제 키워드

unresolved overloaded function type

(해석해보면:  해결되지 않은 오버로드 된 함수 유형)

 

2. 원인

함수를 매개변수를 쓰고자 할때 포인터를 못찾아서 발생하는 경우가 있다.

class Ccompare
{

private:
	int (*item_compare)(void *, void *);

public:
	int set_compare(int _compare(void *, void *) = this->compare) {
	// .. 중간 생략
    	item_compare = _compare;
		return 1;
	}


	int compare(void *p_void_1, void *p_void_2) {
	// .. 중간 생략
		return 1;	
	}
    
}

 

3. 조치

: 위의 같은 경우는 컴파일러가 객체안에 있는 함수의 포인터를 찾지 못하여, 

: 매개변수로 들어가는 함수를 static으로 변경해주면 가능해진다. (수많은 에러중에 하나의 조치 방법이니 원인을 확인 후 조치 바랍니다.)

class Ccompare
{

private:
	int (*item_compare)(void *, void *);

public:
	int set_compare(int _compare(void *, void *) = this->compare) {
	// .. 중간 생략
    	item_compare = _compare;
		return 1;
	}

	// static으로 변경!!
	static int compare(void *p_void_1, void *p_void_2) {
	// .. 중간 생략
		return 1;	
	}
    
}

 

 

고수님들 중에 해당 방법의 문제사항이 있으시면 아래의 댓글 부탁드립니다. 

 

반응형