Was not declared in this scope [Résolu]

Signaler
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
-
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
-
Bonjour à ts

J'utilise l'editeur slick edit,le langage est c++.

j'ai un fichier monitoringmain.cpp ou j'ai inclus
#include "MonitoringMain.hpp"
le MonitoringMain.hpp contient certaines fonctions et j'y a inclus un autre fichier :
#include "ConnectToServer.hpp"

Dans le fichier "ConnectToServer.hpp" j'ai declaré les fonctions suivantes qui sont definies sous "ConnectToServer.cpp" :

bool connectThroughModem();
bool disconnectTroughModem();
bool sendDataTroughModem(char *buffer);

quand je fais appel à ces fonctions à partir de monitoringmain.cpp je reçois les erreurs suivantes :

Src/MonitoringMain.cpp: In member function 'virtual int MonitoringMain::MainAppProcessing()':
Src/MonitoringMain.cpp:208: error: 'connectThroughModem' was not declared in this scope
Src/MonitoringMain.cpp:209: error: 'sendDataTroughModem' was not declared in this scope
Src/MonitoringMain.cpp:210: error: 'disconnectTroughModem' was not declared in this scope

J'apprecierais beacoup votre aide
Merci

4 réponses

Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

Il ne s'agissait pas d'un namespace parce que ces fonctions c'est moi qui les ai definies..

La solution était toute bête .. puisque je me suis habitué à développer en c, j'ai attaqué c++ avec la même notion

Alors qu'il fallait créer un objet de la classe ou j'ai defini ces fonction :
connectToServerModem *conn = new connectToServerModem();
[....]

conn->connectThroughModem();
conn->sendDataTroughModem(msg_to_send);
conn->disconnectTroughModem();

Merci :))
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
Si tes fonctions n'ont pas vocations à être utilisé avec des attributs de classe, c'est à dire si ces fonctions sont indépendantes les unes des autres, c'est une erreur de conception de créer un objet inutile autour de celle-ci.

Je te conseille plutôt la forme suivante:
namespace Network
{
  bool connectThroughModem();
  bool disconnectTroughModem();
  bool sendDataTroughModem(char *buffer); // Tiens je remplacerais d'ailleurs char*, par const std::string&
}


Puis:
Network::connectThroughModem();
Network::sendDataTroughModem(msg_to_send);
Network::disconnectTroughModem();


________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
Est-ce qu'il n'y aurait pas une classe ou un namespace autour des fonctions que tu essaies d'appeler ?

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

Ok merci beaucoup .. ça fonctionne aussi .. je voit que ta méthode est beaucoup plus clean .. La mienne était un peu bricolé ..