Bonjour à tous!
Tout d'abord, merci pour le droit d'admission à ce forum: il semble merveilleux!
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:
Voici le contenu des fichiers de mon application-test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Fichier main.cpp
Fichier Classe.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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__
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Partager