I am creating a simple UTIL.h file containing the aplusb (int, int) function for my C ++ project. However, I cannot compile, and the error message is about the multiple definition of `aplusb (int, int) '. Could you help me correct a mistake or give me some tips?
I am enclosing my project here for your detailed reference.
File util.h
#ifndef UTIL_H_ #define UTIL_H_ int aplusb(int a, int b) { return a + b; } #endif
ClassA.h File
#ifndef CLASSA_H_ #define CLASSA_H_ class ClassA { public: ClassA(); virtual ~ClassA(); private: int sum; }; #endif
ClassA.cpp File
#include "ClassA.h" #include "UTIL.h" ClassA::ClassA() {
ClassB.h File
#ifndef CLASSB_H_ #define CLASSB_H_ class ClassB { public: ClassB(); virtual ~ClassB(); private: int sum; }; #endif
ClassB.cpp File
#include "ClassB.h" #include "UTIL.h" ClassB::ClassB() {
Compile error message
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
source share