Błąd z wieloma definicjami funkcji

Próbuję uczyć się C ++ po zrobieniu kursu wstępnego kilka lat temu i mam kilka podstawowych problemów. Mój obecny problem występuje podczas próby użycia funkcji znajomego. Oto mój kod w 2 plikach.

Pierwszy:

// 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;
}

Druga:

// 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;
}

Błąd, który otrzymuję, to „wielokrotna definicja` funct () '”. Czy używam niewłaściwej składni przy deklarowaniu jej jako funkcji znajomego?

questionAnswers(2)

yourAnswerToTheQuestion