Problème: pointeur de fonction à partir d'un namespace
Bonjour à tous!
Tout d'abord, merci pour le droit d'admission à ce forum: il semble merveilleux! :king:
Venons-en maintenant au fait: je tente de créer une application pour un projet personnel. Je suis tombé sur une erreur que je suis incapable de résoudre. Je me suis créé une petite application à part qui reproduit l'erreur mais je ne réussis toujours pas à comprendre ce qui se passe.
Est-ce que l'un d'entre vous aurais l'aimabilité de m'aider svp? :)
Voici l'erreur obtenue:
Code:
1 2
|
1>CClasse.obj : error LNK2005: "int (__cdecl* CClasse::ptFunct)(int,int)" (?ptFunct@CClasse@@3P6AHHH@ZA) déjà défini(e) dans main.obj |
Voici le contenu des fichiers de mon application-test:
Fichier main.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
#include <iostream>
#include "CClasse.h"
int main()
{
//Initialise the pointer of function
//Remarquez que je n'appel aucune fonction de CClasse!
//CClasse::Init();
int poulet1=1, poulet2=2, poulet3;
//Call the function via the function pointer
//poulet3 = CClasse::ptFunc(poulet1,poulet2);
return 0;
} |
Fichier Classe.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
#ifndef __CLASSE_H__
#define __CLASSE_H__
namespace CClasse{
//Pointer of function
int (*ptFunct)(int a, int b);
void Init();
int AddAndDisplay(int a, int b);
};
#endif //__CLASSE_H__ |
Fichier Classe.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#include "CClasse.h"
#include <iostream>
using namespace std;
void CClasse::Init()
{
ptFunct=AddAndDisplay;
}
int CClasse::AddAndDisplay(int a, int b)
{
int temp;
temp=a+b;
cout<<"Additionner et afficher:"<<endl;
cout<<a<<" + "<<b<<" = "<<temp<<endl;
return(temp);
} |