Rechercher : dans
Par :

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

Dernière réponse le 1 mar 2007 à 19:32:37 sting, le 27 fév 2007 à 08:56:47 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [C]Appel de méthodes d'une même classe » dans :
Les templates en C++ VoirIntroduction Avantages Inconvénients Quand utiliser des templates ? Que dois-je mettre dans les .hpp et dans les .cpp ? Convention de notations Quelques templates célèbres STL BGL Premiers pas Spécifications de templates Template par...
Supprimer complètement un programme VoirMalgré la désinstallation d'un programme, il se peut que des clés de registre ou des fichiers soient encore présents sur le PC. Si la méthode "classique" (clic droit/supprimer) ne fonctionne pas, il suffit d'utiliser l'éditeur du registre. Mise en...
Java: Les méthodes VoirLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs...
PHP - Les classes VoirLa notion de classe Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la...
Les classes en langage C++ VoirLa notion d'objet Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L'apport principal du langage C++ par rapport au...

1

Char Snipeur, le 27 fév 2007 à 13:02:25

?
Je comprend pas non plus. Normalement c'est pareil.
Donne nous un exemple concret que l'on puisse compiler. Salutation !
Char Snipeur

Répondre à Char Snipeur

2

sting, le 27 fév 2007 à 16:48:21

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

Répondre à sting

3

mamiemando, le 28 fév 2007 à 02:17:26

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

Répondre à mamiemando

4

Char Snipeur, le 28 fév 2007 à 08:51:45

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 ! Salutation !
Char Snipeur

Répondre à Char Snipeur

5

mamiemando, le 28 fév 2007 à 10:04:24

Non en fait il a implémenté des méthodes de Glacier qu'il n'a pas déclaré.

Répondre à mamiemando

6

Char Snipeur, le 1 mar 2007 à 08:49:56

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. Salutation !
Char Snipeur

Répondre à Char Snipeur

7

mamiemando, le 1 mar 2007 à 10:53:50

Je ne fais que lire le message d'erreur du compilateur :)

Répondre à mamiemando

8

 sting, le 1 mar 2007 à 19:32:37

Mon problème a été résolu.

Répondre à sting