Accueil > Forum > > > > héritage c++
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
|
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
|
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()
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|