[C]Appel de méthodes d'une même classe

sting -  
 sting -
Bonjour,

j'ai une question à propos de l'appel de méthodes.

J'ai une classe A et une classe B qui hérite de A.
class A{
int fct1(){
...
}
}

class B:publicA{
int fct2(){
...
}

int fct3{
int v = fct1();
int w = fct2();
...
}
}

Dans B, en appelant fct1 et fct2 de cette manière ça ne fonctionne pas de même qu'en faisant this->fct1(), this->fct2().

Est-ce que vous pourriez m'indiquer comment faire dans ce cas.

Merci

7 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
?
Je comprend pas non plus. Normalement c'est pareil.
Donne nous un exemple concret que l'on puisse compiler.
0
sting
 
Bonjour,

Voici un exemple plus concret.
L'exemple n'est pas compilable tel quel.
j'ai écrit une méthode qui en appelle d'autres.
Le soucis, c'est que que ça me produit l'erreur suivante :
Glacier.cc: In function ‘void arrivee(Plage&)’:
Glacier.cc:19: erreur: ‘getLigne’ was not declared in this scope
Glacier.cc:19: erreur: ‘getColonne’ was not declared in this scope

Voici le code :
Glacier::Glacier(int ligne, int indice_colonne, int heure_arrivee, int heure_depart):Personne(indice_colonne, heure_arrivee, heure_depart),indice_ligne(ligne){
}

int Glacier::getLigne(){
  return indice_ligne;
}

int Glacier::getProfits(){
  return profits;
}

void arrivee(Plage & plage){
  plage.entree(getLigne(), getColonne());
}

getColonne a été écrite dans la classe Personne dont hérite Glacier
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Est ce que les fonctions ont été déclarées dans ta classe ?

plop.hpp
class plop{
  void f();
  void g();
  //...
};

plop.cpp
void plop::f(){
  // ...
}

void plop::g(){
  // ...
}

Autre petite remarque tes méthodes getLigne et getProfits ne modifient pas this, donc tu devrais écrire en toute rigueur
int Glacier::getLigne() const {
  return indice_ligne;
}

int Glacier::getProfits() const {
  return profits;
}

Bonne chance
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Tel quel, ton problème n'a rien à voir avec le message du debut.
le compilateur a raison, les fonctions getLigne(), getColonne() ne sont pas déclarer. Ce que tu as déclarer se sont les fonctions :
Glacier::getLigne(), Glacier::getColonne()
Tu as un problème de portée !
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Non en fait il a implémenté des méthodes de Glacier qu'il n'a pas déclaré.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Je ne voi pas ce qui te permet de dire ça ?
à mon sens, il n'a pas encore donné assez d'info, et pour moi arrivee est défini en dehors de toute classe.
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Je ne fais que lire le message d'erreur du compilateur :)
0
sting
 
Mon problème a été résolu.
0