error C2872
#include <iostream> using namespace std; ... bool is_empty(LinkedListType *list) { return list->head == NULL ? true : false; } void delet(LinkedListType *list, int pos) { if ((!is_empty(list)) && (pos >= 0) && (pos < list->length)) { ListNode *p = get_node_at(list, pos - 1); ListNode *removed = get_node_at(list, pos); remove_node((&list->head), p, removed); list->length--; } } ...
위와 같은 코드를 실행하면 다음과 같은 오류가 발생할 수 있다
error C2872: 'is_empty': 모호한 기호입니다.
이 오류는 namespace 기능에 의해 발생하는 오류이다
14번 줄에 있는 is_empty 가 'bool is_empty(LinkedListType *list)' 인지 'std::is_empty' 인지
구별을 하지 못하기에 발생한다
이를 해결하는 방법은 함수의 이름을 바꾸어주거나 is_empty를 확실하게 구별시켜주면 된다
구별시켜주는 방법은
::is_empty
를 이용하면 'bool is_empty(LinkedListType *list)', namespace가 없는 함수로 인식한다
std::is_empty
를 이용하면 std 상의 is_empty 로 인식한다
MSDN::https://msdn.microsoft.com/ko-kr/library/t57wswcs.aspx
320x100
'Programming Language > C/C++' 카테고리의 다른 글
[C/C++] 포인터와 const (0) | 2017.05.10 |
---|---|
[C/C++] string 문자열 비교 ==? compare? strcmp? (1) | 2017.04.30 |
[C/C++] error C4996: 'strcpy' 'strcat' 오류 해결 (0) | 2017.04.21 |
[C/C++] 숫자를 포함한 문자열 입력 시 오류 해결 (0) | 2017.04.20 |
[C/C++] 빈칸을 포함한 문자열 입력 시 오류 해결 (0) | 2017.04.20 |