Vous êtes sur la page 1sur 2

#include<stdio.

h>
#include<string.h>
class document
{
protected:
char titre[50];
int annee;
public:
document(char *T, int a)
{
strcpy(this->titre, T);
this->annee = a;
}
virtual void afficher()
{
printf("titre= %s\n",this->titre);
printf("annee d'edition= %d\n",this->annee);
}
virtual float getprix()=0;
};
class livre:public document
{
private:
char auteur[50];
char edition[50];
const float prix;
public:
livre(char *T, int a, char *aut, char *ed, const float p):document(T, a)
, prix(p)
{
strcpy(this->auteur, aut);
strcpy(this->edition, ed);
}
void afficher()
{
this->document::afficher();
printf("auteur= %s\n",this->auteur);
printf("maison d'edition= %s\n",this->edition);
printf("Prix= %.2f\n",this->prix);
}
float getprix()
{
return(this->prix);
}
};
class revue:public document
{
private:
char directeur[50];
int numero;
int nbre_pages;

public:
revue(char *T, int a, char *d, int n, int p):document(T, a)
{
strcpy(this->directeur, d);
this->numero= n;
this->nbre_pages= p;
}
void afficher()
{
this->document::afficher();
printf("directeur= %s\n",this->directeur);
printf("numero= %d\n",this->numero);
printf("nbre de pages= %d\n",this->nbre_pages);
printf("prix= %.1f\n", 0.25*this->nbre_pages+5);
}
float getprix()
{
return(0.25*this->nbre_pages+5);
}
};
int main()
{
livre liv("langage C++", 2004, "Claude Delannoy", "Eyrolles", 299.99);
revue rev("Electronique pratique", 2006, "Rodney Zaks", 156, 40);
document *ptr;
printf("================================\n");
ptr= &liv;
printf("prix du livre: %.2f\n", ptr->getprix());
ptr= &rev;
printf("prix de la revue: %.1f\n", ptr->getprix());
printf("================================\n");
ptr= &liv;
ptr->afficher();
printf("================================\n");
ptr= &rev;
ptr->afficher();
return 0;
}

Vous aimerez peut-être aussi