begin process at 2012 05 29 08:55:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

héritage c++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

héritage c++

mardi 19 mai 2009 à 01:22:11 | héritage c++

mouadsa

Bonsoir,

Alors, j'ai créer un programme en c++ concernant une classe "compte" où je px calculer le versement et le retrait bien sur sous condition. Maintenant je me demande comment je peux Hériter cette classe pour créer un autre "copmte carnet" où je peux mettre la fonction Calcul Intérêt (avec un taux fixe), en redéfinissant la fonction afficher et le constructeur aussi.
Merci d'avance.
Voici le programme :


#include<iostream.h>
#include<conio.h>
class compte
{int Num_client;
int Num_agence;
int Num_compte;
float solde;
public:
compte(int cl, int ag, int nc, float sol)
{
Num_client=cl;
Num_agence=ag;
Num_compte=nc;
solde=sol;
}
void afficher()
{cout<<"N? du Client est: "<<Num_client<<"\n";
cout<<"N? de l'Agence est: "<<Num_agence<<"\n";
cout<<"N? du compte: "<<Num_compte<<"\n";
cout<<"Solde : "<<solde<<"\n";
}
void verser(float s)
{solde=solde+s;
}
void retirer(float s1)
{
if(solde>s1)
solde=solde-s1;
else
cout<<"Retrait impossible"<<endl;
   }
}; //Fin Programme
void main()
{ clrscr();
int nc,na,nu;
float sol,s,s1;
cout<<"Entrer n? du client: "<<endl;
cin>>nu;
cout<<"Entrer n? de l'agence:  "<<endl;
cin>>na;
cout<<"Entrer n? du compte "<<endl;
cin>>nc;
cout<<"Entrer le solde "<<endl;
cin>>sol;
compte c1(nu,na,nc,sol);
c1.afficher();
cout<<"Combien voulez vous verser??"<<endl;
cin>>s;
c1.verser(s);
cout<<"Votre nouveau solde est :";
c1.afficher();

cout<<"Combien voulez vous retirer??"<<endl;
cin>>s1;
c1.retirer(s1);
cout<<"Votre nouveau solde est :";
c1.afficher();
getch();}
mardi 19 mai 2009 à 10:05:52 | Re : héritage c++

CptPingu

Administrateur CodeS-SourceS
On évite de coder dans un header. Sépare bien la définition du code.

Exemple:

Fichier header: (.h, .hh, .hpp)
class Toto
{
   Toto();
    void afficher();
};

Fichier de code: (.cpp, .cc)
Toto::Toto()
{
}

void Toto::afficher()
{
}

De plus, pour hériter il te suffit simplement d'utiliser l'opérateur ":".

Enfin, la signature d'un main est : int main() et non void main()

#include <iostream>

class Compte
{
public:
  Compte(int cl, int ag, int nc, float sol);
  virtual void afficher() const;
  virtual void verser(float s);
  virtual void retirer(float s1);
private:
  int _numClient;
  int _numAgence;
  int _numCompte;
  float _solde;
};

Compte::Compte(int cl, int ag, int nc, float sol)
  : _numClient(cl), _numAgence(ag), _numCompte(nc), _solde(sol)
{
}

void
Compte::afficher() const
{
  std::cout << "N? du Client est: " << _numClient << std::endl;
  std::cout << "N? de l'Agence est: " << _numAgence << std::endl;
  std::cout << "N? du compte: " << _numCompte << std::endl;
  std::cout << "Solde : " << _solde << std::endl;
}

void
Compte::verser(float s)
{
  _solde += s;
}

void
Compte::retirer(float s1)
{
  if (_solde > s1)
    _solde -= s1;
  else
    std::cout << "Retrait impossible" << std::endl;
}

class CompteCarnet : public Compte
{
  typedef Compte super;

public:
  CompteCarnet(int cl, int ag, int nc, float sol);
  virtual void afficher() const;
  virtual void calculerTauxInteret();
};

CompteCarnet::CompteCarnet(int cl, int ag, int nc, float sol)
  : super(cl, ag, nc, sol)
{
}

void
CompteCarnet::afficher() const
{
  // Ajoute ici ce que tu veux
  super::afficher(); // Affichage comme dans compte
  // Ajoute ici ce que tu veux
}

void
CompteCarnet::calculerTauxInteret()
{
  // Réalise tes calculs
}

int main()
{
  //clrscr();
  int nc,na,nu;
  float sol,s,s1;
  std::cout << "Entrer n? du client: " << std::endl;
  std::cin >> nu;
  std::cout << "Entrer n? de l'agence: " << std::endl;
  std::cin >> na;
  std::cout << "Entrer n? du compte " << std::endl;
  std::cin >> nc;
  std::cout << "Entrer le solde " << std::endl;
  std::cin >> sol;
  Compte c1(nu, na, nc, sol);
  c1.afficher();
  std::cout << "Combien voulez vous verser??" << std::endl;
  std::cin >> s;
  c1.verser(s);
  std::cout << "Votre nouveau solde est :";
  c1.afficher();

  std::cout << "Combien voulez vous retirer??" << std::endl;
  std::cin >> s1;
  c1.retirer(s1);
  std::cout << "Votre nouveau solde est :";
  c1.afficher();

  CompteCarnet c2(nu, na, nc, sol);
  c2.afficher();
  std::cout << "Combien voulez vous verser??" << std::endl;
  std::cin >> s;
  c2.verser(s);
  std::cout << "Votre nouveau solde est :";
  c2.afficher();

  std::cout << "Combien voulez vous retirer??" << std::endl;
  std::cin >> s1;
  c2.retirer(s1);
  std::cout << "Votre nouveau solde est :";
  c2.afficher();
  //getch();

  return 0;
}

mardi 19 mai 2009 à 10:07:29 | Re : héritage c++

CptPingu

Administrateur CodeS-SourceS
Remplace juste "private" par "protected" dans la classe Compte, si tu veux avoir accès aux attributs dans la classe fille.


Cette discussion est classée dans : int, num, compte, s1, solde


Répondre à ce message

Sujets en rapport avec ce message

Aide sur les classes [ par mouadsa ] Bonsoir, J'ai un programmes en c++ où je dois créer une classe compte et puis créer n comptes (tableau dynamique), les afficher tous et saisir leurs p Probleme inconnu [ par adil1251985 ] salut tout le monde, je suis entrain de developper un programme qui calcule le produit de deux grands nombres, pour cela j'ai pas travaillé avec des projet en language C [ par bassekoa ] j'ai un projet en language C a effectué;je demande de l'aide;le voici: Projet Le but de cette série du projet est d’écrire un programme Gestion des long int [ par kiira31 ] Bonjour, Je code en ce moment la fonction printf. Je suis en train de gerer l affichage d'un nombre mais j'ai un souci pour gerer les long. Voici mo Problème d'affichage a la lecture d'un fichier avec fonction fstream et stockage dans une chaine [ par curite ] Bonjours, j'ai créer un gestionnaire de mot de passe en c++ je vous montre le code sinon vous allez rien comprendre :p main.cpp [code=cpp] #include aide problem de compilation [ par pboscaiolo ] Bonjour j'ai un code avec le code suivant. quand je le compile ca plante, je crois qu'il s'agit d'un probleme d'allocation de memoire. le fichier duq Programme client sereur [ par bmoussa1989 ] Bonjour, j'ai un programme "client serveur" programmé en c++ (et avec la bibliothèque "MPI") et je veux faire une communication entre le client et le probleme avec printf(%d) [ par jeani763 ] Mon probleme est assez compliqué :Je voudrais que mon programme compte le nombre de lettres que je lui donne ce qui ce fait grace a la fonction cin ; menu en c/c++ avec un switch [ par sev622 ] bonjour, voilà, je voudrai faire un menu tout simple avec un switch dans un boucle while...mais j'y arrive pas. Voilà ce que j'ai fait : void main()


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,574 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales