problème avec des méthodes inline - C++ - Programmation
MarshPosté le 09-05-2007 à 21:35:17
Bonjour,
voilà mon problème. J'ai une méthode d'une classe déclarée inline. Lorsque j'essaie de l'appeler depuis un autre endroit dans mon programme, le compilateur m'informe qu'il ne la trouve pas, alors j'inclus le fichier qui en contient le code et à ce moment là, à la compilation, il me dit que la méthode est définie deux fois. Comment faire pour les utiliser ???
merci beaucoup pour votre aide.
Gilbert.
voici ci-dessous un petit code qui vous montre mon problème.
Code :
///////// fichier a.h
#ifndef _A_H_
#define _A_H_
#include <iostream>
class A {
public:
int getG(void) const;
protected:
int g;
};
#endif
Code :
/////////// fichier a.cc
#ifndef _A_CC_
#define _A_CC_
#include "a.h"
#ifndef _A_GETG_
#define _A_GETG
inlinevoid A::getG(void) const {
return g;
}
#endif
#endif
Code :
///////// fichier b.h
#ifndef _B_H_
#define _B_H_
#include <iostream>
#include "a.h"
class B {
public:
int touchVar(A variable);
};
#endif
avec ce b.cc il me dit qu'il ne trouve pas getG()
Code :
///////// fichier b.cc
#ifndef _B_CC_
#define _B_CC_
#include b.h
int B::touchVar(A variable) {
return = variable.getG();
}
#endif
et si je modifie b.cc comme ci-dessous, j'aurais une double définition
Marsh Posté le 09-05-2007 à 21:35:17
Bonjour,
voilà mon problème. J'ai une méthode d'une classe déclarée inline. Lorsque j'essaie de l'appeler depuis un autre endroit dans mon programme, le compilateur m'informe qu'il ne la trouve pas, alors j'inclus le fichier qui en contient le code et à ce moment là, à la compilation, il me dit que la méthode est définie deux fois. Comment faire pour les utiliser ???
merci beaucoup pour votre aide.
Gilbert.
voici ci-dessous un petit code qui vous montre mon problème.
avec ce b.cc il me dit qu'il ne trouve pas getG()
et si je modifie b.cc comme ci-dessous, j'aurais une double définition
Message édité par abaddon2002 le 09-05-2007 à 21:37:39