इस त्रुटि संदेश का क्या अर्थ है?ओवरलोडेड फ़ंक्शन का कॉल संदिग्ध है
error: call of overloaded ‘setval(int)’ is ambiguous
huge.cpp:18: note: candidates are: void huge::setval(unsigned int)
huge.cpp:28: note: void huge::setval(const char*)
मेरे कोड इस तरह दिखता है:
#include <iostream>
#define BYTES 8
using namespace std ;
class huge {
private:
unsigned char data[BYTES];
public:
void setval(unsigned int);
void setval(const char *);
};
void huge::setval(unsigned int t) {
for(int i = 0; i< BYTES ; i++) {
data[i] = t;
t = t >> 1;
}
}
void huge::setval(const char *s) {
for(int i = 0; i< BYTES ; i++)
data[i] = s[i];
}
int main() {
huge p;
p.setval(0);
return 0;
}
मुझे लगता है कि इस प्रश्न का उत्तर इस बात पर निर्भर करेगा कि आप किस फ़ंक्शन को कॉल करने का प्रयास कर रहे हैं। मैं मान सकता हूं, लेकिन स्पष्ट रूप से मैं तब तक सुनिश्चित नहीं हो सकता जब तक कि आप मुझे नहीं बताते। क्या मैं संकलक के साथ काम करता हूं मुझे आश्चर्य है ... –
@ कोनराड रुडॉल्फ शाब्दिक '0' दोनों 'हस्ताक्षरित int' और' const char * 'के लिए मान्य मान है। –
@RyanP हाँ, मुझे आमतौर पर पता है। मुझे नहीं पता कि मेरा मतलब क्या था। विशेष रूप से अंतिम पैराग्राफ के लिए –