Objet "double" non reconnu

Signaler
Messages postés
48
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
10 décembre 2009
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
Bonjour,
J'ai un  problème lors de la compilation de mon programme. Une fonction déclarer "double" est déclaré par le compilateur void.

déclaration de ma fonction:
fichier .cpp:
double

CAPI_AcquiCard_NI::getGSSDistAbs(void){

return _lastFrame.DistAbs;

}

fichier .h:

struct CAPI_DistFrameStr

{

double DistAbs;

double DistRel;

};

virtualdouble getGSSDistAbs(void);

Le problème se trouve dans une autre classe que j'utilise pour stocker les infos:

CAPI_AcquiCard_NI * DAQ; // liens

double

Dist; // init

Dist= DAQ->getGSSDistAbs(); LE PROBLEME EST ICI!!!!!

Lors de la compilation j'ai l'erreur:

"""""error C2440: '=' : cannot convert from 'void' to 'double'"""""

Je ne comprend pas, rien n'est déclarer en void!!!!
Quelqu'un peut il m'aider?

Je vous remercie

3 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Pourquoi tu déclares ta fonction "virtual", ca n'a aucun sens la ?
Messages postés
48
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
10 décembre 2009

bonjour,
tu as raison.
J'ai modifié mais le problème est le même.
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Oula mais attend, j'ai meme pas remarqué, mais je crois que tu fais fausse route la.

DAQ->getGSSDistAbs()

Ce type de syntaxe s'utilise uniquement en C++ avec des fonctions membres. Or t'as struct ne possède aucune fonction membre.

Soit tu programmes en C et ta fonction aura la définition:
double getGSSDistAbs(CAPI_DistFrameStr * _ptr);

que tu utilises de la facon suivante:
CAPI_AcquiCard_NI * DAQ; // liens

double

Dist; // initDist= getGSSDistAbs(DAQ);

Soit tu fais du C++ et tu mets la fonction dans la structure:
struct CAPI_DistFrameStr

{

double getGSSDistAbs(void);

double DistAbs;

double DistRel;

};

Et donc t'as syntaxe est correct.