Was not declared in this scope

Résolu
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 3 nov. 2010 à 10:27
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 3 nov. 2010 à 11:28
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
A voir également:

4 réponses

cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
3 nov. 2010 à 11:09
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 :))
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
3 nov. 2010 à 11:20
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
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
3 nov. 2010 à 10:37
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
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
3 nov. 2010 à 11:28
Ok merci beaucoup .. ça fonctionne aussi .. je voit que ta méthode est beaucoup plus clean .. La mienne était un peu bricolé ..
0
Rejoignez-nous