I am trying to relearn C++ after taking an intro course a few years ago and I’m having some basic problems. My current problem occurs when trying to use a friend function. Here is my code in 2 files.
First:
// fun.cpp #include <iostream> using namespace std; class classA { friend void funct(); public: classA(int a=1,int b=2):propa(a),propb(b){cout<<"constructor\n";} private: int propa; int propb; void outfun(){ cout<<"propa="<<propa<<endl<<"propb="<<propb<<endl; } }; void funct(){ // ERROR HERE cout<<"enter funct"<<endl; classA tmp(1,2); tmp.outfun(); cout<<"exit funct"<<endl; }
Second:
// mainfile.cpp #include <iostream> #include "fun.cpp" using namespace std; int main(int nargin,char* varargin[]) { cout<<"call funct"<<endl; funct(); cout<<"exit main"<<endl; return 0; }
The error I am getting is “multiple definition of `funct()'”. Am I using the wrong syntax when declaring it as a friend function?