2012-02-28 19 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

std::max() साथ आपका चर max विरोध करता है। एक अलग नाम का उपयोग करने का प्रयास करें और इसे उस त्रुटि को ठीक करना चाहिए।

+5

इस तरह के कारण हैं जो 'नेमस्पेस std;' ऐसे दुःस्वप्न का उपयोग करते हैं। –

+0

धन्यवाद कि काम किया! – Haxify

+3

'अधिकतम' नाम बदलने की बजाय मैं सलाह दूंगा कि इस कारण से नामस्थान स्टेड का उपयोग कर उपयोग निर्देश का उपयोग न करें। –

0

मैं जब C++ में Intel RealSense 3D SDK का उपयोग कर एक ही समस्या थी। मेरे पास अपने कोड में hand.cpp और hand.h था और जब मेरे पास using namespace Intel::RealSense; था तो यह एक संघर्ष होता है। इसे ठीक करने के लिए, मैंने using namespace Intel::RealSense; हटा दिया और रीयलसेन्स एसडीके से संबंधित प्रत्येक वर्ग नाम में पीएक्ससी जोड़ा। #

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 
संबंधित मुद्दे