का उपयोग करते समय फ़ंक्शन त्रुटि की एकाधिक परिभाषा, मैं एक साधारण UTIL.h फ़ाइल बना रहा हूं जिसमें मेरे C++ प्रोजेक्ट के लिए aplusb (int, int) फ़ंक्शन शामिल है। हालांकि मैं संकलित नहीं कर सकता और त्रुटि संदेश 'aplusb (int, int)' की एकाधिक परिभाषा के बारे में है। क्या आप कृपया मुझे त्रुटि को सही करने में मदद करें या मुझे कुछ संकेत दें?#if गार्ड क्लॉज
मैं अपने विवरण संदर्भ के लिए यहां अपनी परियोजना संलग्न करता हूं।
फ़ाइल UTIL.h
#ifndef UTIL_H_
#define UTIL_H_
int aplusb(int a, int b) {
return a + b;
}
#endif /* UTIL_H_ */
फ़ाइल ClassA.h
#ifndef CLASSA_H_
#define CLASSA_H_
class ClassA {
public:
ClassA();
virtual ~ClassA();
private:
int sum;
};
#endif /* CLASSA_H_ */
फ़ाइल ClassA.cpp
#include "ClassA.h"
#include "UTIL.h"
ClassA::ClassA() {
// TODO Auto-generated constructor stub
sum = aplusb(3,5);
}
ClassA::~ClassA() {
// TODO Auto-generated destructor stub
}
फ़ाइल ClassB.h
#ifndef CLASSB_H_
#define CLASSB_H_
class ClassB {
public:
ClassB();
virtual ~ClassB();
private:
int sum;
};
#endif /* CLASSB_H_ */
फ़ाइल ClassB.cpp
#include "ClassB.h"
#include "UTIL.h"
ClassB::ClassB() {
// TODO Auto-generated constructor stub
sum = aplusb(5,6);
}
ClassB::~ClassB() {
// TODO Auto-generated destructor stub
}
संकलित त्रुटि संदेश
ClassB.o: In function `aplusb(int, int)':
/home/vtvan/Desktop/workspace/commonfunc/UTIL.h:11: multiple definition of `aplusb(int, int)'
ClassA.o:/home/vtvan/Desktop/workspace/commonfunc/UTIL.h:11: first defined here
collect2: error: ld returned 1 exit status
make: *** [commonfunc] Error 1
मैं के रूप में उत्सुक हूँ दूसरा संस्करण "सही" क्यों होगा, और पहला नहीं। इस समारोह को रेखांकित करने की समस्या क्या होगी? – JBL
@ जेबीएल वास्तव में कुछ भी नहीं, सही किया गया। – ForEveR
धन्यवाद सब, मैं त्रुटि को दूर कर सकते हैं। – andycandy