Was not declared in this scope [Résolu]

Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
- - Dernière réponse : 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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
3
Merci
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 :))

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 139 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_aymen87
Messages postés
3835
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
5 mai 2019
167
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 139 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu
Messages postés
3835
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
5 mai 2019
167
0
Merci
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
Commenter la réponse de cptpingu
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
0
Merci
Ok merci beaucoup .. ça fonctionne aussi .. je voit que ta méthode est beaucoup plus clean .. La mienne était un peu bricolé ..
Commenter la réponse de cs_aymen87

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.