Les «class» pour débutant

cs_cognac Messages postés 50 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 11 mars 2010 - 10 sept. 2002 à 20:17
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003 - 12 sept. 2002 à 18:35
Voici un petit programme:
|||||||||||||| constante.h||||||||||||
#ifndef CONSTANTES
#define CONSTANTES

#include
#include <stdio.h>
using namespace std;

const int a=5;
const int b=10;

#endif
|||||||||||||||||calculateur.h||||||||||||
#ifndef CALCULATEUR
#define CALCULATEUR
#include "constantes.h"

class calcul
{
public: calcul();
~calcul(){}

void resultat();

int somme;

};
#endif
|||||||||||||calculateur.ccp||||||||||||
#include "calculateur.h"

calcul::calcul()
{
somme = a+b;
}
void calcul::resultat()
{
printf("le résultat est : %d\n",somme);
}
|||||||||||||||main.ccp|||||||||
#include <stdlib.h>
#include "calculateur.h"

void main()
{
calcul theCalcul;
theCalcul.resultat();
system("PAUSE");
return 0;
}

Tel quel ça fonctionne mais j'aimerai dans la methode «main» remplacer «theCalcul.resultat();» directement par «printf("le résultat est : %d\n",somme);»
Mais j'obtient un message comme quoi il ne reconnait pas la variable «somme» même si j'ai inclut le «header» calculateur.h. J'ai essayé un pointeur et new mais sans succès. En bout de ligne ce que j'aimerai accomplir c'est de passer la valeur d'une variable d'une class à un autre mais d'un fichier source à un autre.

Merci

cognac

6 réponses

cs_geantvert Messages postés 17 Date d'inscription jeudi 11 avril 2002 Statut Membre Dernière intervention 7 avril 2004
11 sept. 2002 à 17:37
Essaye ça :

printf("le résultat est : %d\n",theCalcul.somme);

A++
Géant Vert
0
cs_cognac Messages postés 50 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 11 mars 2010
11 sept. 2002 à 18:59
-------------------------------
Réponse au message :
-------------------------------

Essaye ça :

printf("le résultat est : %d\n",theCalcul.somme);

A++
Géant Vert

-------------------------------
Réponse au message :
-------------------------------

Voici un petit programme:
|||||||||||||| constante.h||||||||||||
#ifndef CONSTANTES
#define CONSTANTES

#include
#include <stdio.h>
using namespace std;

const int a=5;
const int b=10;

#endif
|||||||||||||||||calculateur.h||||||||||||
#ifndef CALCULATEUR
#define CALCULATEUR
#include "constantes.h"

class calcul
{
public: calcul();
~calcul(){}

void resultat();

int somme;

};
#endif
|||||||||||||calculateur.ccp||||||||||||
#include "calculateur.h"

calcul::calcul()
{
somme = a+b;
}
void calcul::resultat()
{
printf("le résultat est : %d\n",somme);
}
|||||||||||||||main.ccp|||||||||
#include <stdlib.h>
#include "calculateur.h"

void main()
{
calcul theCalcul;
theCalcul.resultat();
system("PAUSE");
return 0;
}

Tel quel ça fonctionne mais j'aimerai dans la methode «main» remplacer «theCalcul.resultat();» directement par «printf("le résultat est : %d\n",somme);»
Mais j'obtient un message comme quoi il ne reconnait pas la variable «somme» même si j'ai inclut le «header» calculateur.h. J'ai essayé un pointeur et new mais sans succès. En bout de ligne ce que j'aimerai accomplir c'est de passer la valeur d'une variable d'une class à un autre mais d'un fichier source à un autre.

Merci

cognac
0
cs_cognac Messages postés 50 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 11 mars 2010
11 sept. 2002 à 19:00
Ça fonctionne...et comme c'est simple.

Merci beaucoup.

cognac
0
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
11 sept. 2002 à 21:00
essaye d'utiliser cin et cout (c'est les équivalent C++ de printf et scanf en bien mieux)

le mieux serait de mettre somme en private, et de faire une fonction const :
get_somme();

Ainsi pour ta classe :
class calcul
{
public:
calcul();
~calcul(){}

void resultat();
int get_resultat() const; // const indique que la fonction ne modifie par les variables de la class

private :
int somme;

};

puis
int calcul::get_resultat() const {
return somme;
}
0

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

Posez votre question
cs_geantvert Messages postés 17 Date d'inscription jeudi 11 avril 2002 Statut Membre Dernière intervention 7 avril 2004
12 sept. 2002 à 10:22
Le top du top serait en fait de surcharger les opérateurs << et >> . Mais ça c'est une autre histoire ...

A++

Géant Vert
0
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
12 sept. 2002 à 18:35
effectivement !
***raph***
0
Rejoignez-nous