Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Carte
- {
- char titlu[64];
- const float cost2 = 100;
- protected:
- void afis_cost2()
- {
- cout << "costul2 " << cost2 << endl;
- }
- public:
- Carte(char *titlu)
- {
- strcpy(Carte::titlu, titlu);
- cout << "constructorul clasei de baza1" << endl;
- }
- void afis_carte()
- {
- cout << "titlul cartii este " << titlu << endl;
- }
- void afis_carte(char *titlu2)
- {
- strcpy(Carte::titlu, titlu2);
- cout << "titlul cartii este " << titlu << endl;
- }
- ~Carte()
- {
- cout << "destructorul clasei de baza1" << endl;
- }
- protected:
- float cost;
- void afis_cost()
- {
- cout << "cartea costa " << cost << endl;
- }
- };
- class Manuale;
- class Revista:Carte {
- friend int pretTotal(Revista, Manuale);
- private:
- int pret = 10;
- public:
- Revista& operator++(int);
- Revista(char titlu[64]):Carte(titlu){}
- };
- class Manuale:Carte {
- friend int pretTotal(Revista, Manuale);
- private:
- int pret = 20;
- public:
- Manuale& operator++(int);
- Manuale(char titlu[64]):Carte(titlu){}
- };
- int pretTotal(Revista a, Manuale b){
- return (a.pret+b.pret);
- }
- class Pagini
- {
- protected:
- int linii;
- public:
- Pagini(int linii)
- {
- Pagini::linii = linii;
- cout << "constructor clasa de baza2" << endl;
- }
- void afis_pagini()
- {
- cout << "cartea are nr de pagini " << linii << endl;
- }
- ~Pagini()
- {
- cout << "destructorul clasei de baza2" << endl;
- }
- };
- class FisaBiblioteca :Carte, Pagini
- {
- char autor[64], editura[64];
- public:
- FisaBiblioteca( char *titlu, char *autor, char *editura) :Carte(titlu), Pagini(166)
- {
- strcpy(FisaBiblioteca::autor, autor);
- strcpy(FisaBiblioteca::editura, editura);
- cost = 49.98;
- cout << "Constructorul clasei derivate" << endl;
- }
- void afis_biblio()
- {
- afis_carte();
- afis_cost();
- afis_cost2();
- cout << "autor: " << autor << " editura " << editura << endl;
- afis_pagini();
- }
- ~FisaBiblioteca()
- {
- cout << "Destructorul clasei derivate" << endl;
- }
- };
- class Imprimanta {
- protected:
- int rezolutie;
- public:
- Imprimanta(int rezolutie = 600) {
- this->rezolutie = rezolutie;
- cout << "Apel Constr. Imprimanta\n";
- }
- ~Imprimanta() {
- cout << "Apel Destr. Imprimanta\n";
- }
- void print(char *text) {
- cout << "Print " << text << "\n";
- }
- };
- int main()
- {
- FisaBiblioteca fisa((char*)"C++ Programare", (char*)"Stroustrup", (char*)"Editura");
- fisa.afis_biblio();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement