2012-02-28 2 views
9
int ii, maxnum; 
for(ii=1; ii<=num-1; ii++) { 
    if(count[ii]>max) { // the part where I get C2872 Ambiguous Symbol error 
     max = count[ii]; // the part where I get C2872 Ambiguous Symbol error 
     maxnum = ii; 
    } 
} 

나는이 오류를 결코 얻지 못했으며 이것이 실망 스럽습니다.모호한 기호 오류입니까?

답변

17

변수 maxstd::max()과 충돌합니다. 다른 이름을 사용해보십시오. 오류를 수정해야합니다.

+5

이렇게 악몽 같은 것을 사용하는 이유는 다음과 같습니다. –

+0

고마워요! – Haxify

+3

'max'의 이름을 바꾸는 대신에,'using namespace std; '지시어를 사용하지 말라고 조언합니다. –

0

C++Intel RealSense 3D SDK을 사용할 때도 같은 문제가 발생했습니다. 나는 내 자신의 코드에 hand.cpphand.h을 가지고 있었고 내가 using namespace Intel::RealSense; 일 때 충돌이 일어났습니다. 이 문제를 해결하기 위해 using namespace Intel::RealSense;을 제거하고 RealSense SDK와 관련된 각 클래스 이름에 PXC를 추가했습니다.

include "RealSense/SenseManager.h" 
#include "RealSense/SampleReader.h" 
#include "util_render.h" 
#include "Visualizer.h" 
#include <iostream> 
using namespace std; 
//using namespace Intel::RealSense; 
PXCSenseManager *pp = PXCSenseManager::CreateInstance(); 
PXCCapture::Device *device; 
PXCCaptureManager *cm; 

여기가 예전의 코드가 어떻게 생겼는지입니다 # : 가 여기에 새로운 변화의 몇 가지 예입니다 변경 후

#include "RealSense/SenseManager.h" 
#include "RealSense/SampleReader.h" 
#include "util_render.h" 
#include "Visualizer.h" 
#include <iostream> 
using namespace std; 
using namespace Intel::RealSense; 
SenseManager *pp = SenseManager::CreateInstance(); 
Capture::Device *device; 
CaptureManager *cm; 

, 난 더 이상 다음과 같은 오류가 발생하지 않았다.

Severity    Code    Description Project File    Line    Suppression State 
Error   C2872   'Hand': ambiguous symbol    OpenARK-SDK c:\openark\Object3D.h