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;
}
}
고수님들 중에 해당 방법의 문제사항이 있으시면 아래의 댓글 부탁드립니다.
반응형
'Programming > C, C++' 카테고리의 다른 글
[C++, Error] (centos) cannot find -lstdc++ (0) | 2020.06.24 |
---|---|
[Linux, C/C++] undefined reference to '__gxx_personality_v0' 오류 조치 (0) | 2020.04.09 |
[C, Error] error: use of undeclared identifier '함수' (0) | 2020.04.09 |
[Linux,C++] getenv.c: undefined reference secure_getenv (0) | 2019.03.29 |
[C/C++] 소켓에서 컴파일 에러 (invalid conversion from int* to socklen_t*) (0) | 2019.02.26 |