Documente Academic
Documente Profesional
Documente Cultură
AL REPUBLICII MOLDOVA
Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică şi Microelectronică
Departamentul Microelectronică si Inginerie Biomedicală
Raport
pentru lucrarea de laborator Nr.4
Verificat:
Barîmb Eusebiu, asistent universitar,
Departamentul Microelectronică si Inginerie Biomedicală,
Facultatea CIM, UTM
Chișinău – 2022
1
CUPRINS
1. Scopul lucrării:.......................................................................................................................3
2.1 Problema:1..........................................................................................................................4
2.2 Concluzia:..........................................................................................................................13
2
Tema: Moştenirea şi compoziţia
1. Scopul lucrării:
studierea moştenirii, avantajele şi dezavantajele
studierea compoziţiei
studierea regulilor de definire a moştenirii şi compoziţiei
studierea formelor de moştenire
studierea iniţializatorilor
principiul de substituţie
moştenire şi compoziţie
Varianta 9
Codul Programului:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
class ziar{
char *denumire, *period;
int tiraj, index;
public:
ziar(){
3
denumire = NULL;
tiraj = 0;
period = 0;
index = 0;
}
void input(int Tiraj, char *Period, int Index, char *Denumire){
this->tiraj = Tiraj;
this->index = Index;
this->period = new char [strlen(Period)+1];
strcpy(this->period, Period);
this->denumire = new char [strlen(Denumire)+1];
strcpy(this->denumire, Denumire);
}
void out(){
cout << "Denumirea: " << this->denumire << endl;
cout << "Tirajul: " << this->tiraj << endl;
cout << "Iindexul de abonare: " << this->index << endl;
cout << "Periodicitatea de publicare: " << this->period <<
endl;
}
ziar(const ziar &z){
//constructor de copiere;
this->denumire = z.denumire;
this->tiraj = z.tiraj;
this->period = z.period;
this->index = z.index;
}
void operator = (ziar &other){
this->denumire = other.denumire;
this->tiraj = other.tiraj;
this->period = other.period;
this->index = other.index;
}
};
class revista : public ziar{};
class ziar_electronic : public ziar{};
int main(){
system("cls");
int Tiraj, Index;
char *Denumire = new char [256];
4
char *Period = new char [256];
ziar *Z = new ziar();
cout << "\tZiar" << endl;
cout << "Introduceri denumirea: ", cin >> Denumire;
cout << "Introduceri tirajul: ", cin >> Tiraj;
cout << "Introduceri indexul de abonare: ", cin >> Index;
cout << "Introduceri periodicitatea de publicare: ", cin >> Period;
Z->input(Tiraj, Period, Index, Denumire);
revista *R = new revista;
cout << "\tRevista" << endl;
cout << "Introduceri denumirea: ", cin >> Denumire;
cout << "Introduceri tirajul: ", cin >> Tiraj;
cout << "Introduceri indexul de abonare: ", cin >> Index;
cout << "Introduceri periodicitatea de publicare: ", cin >> Period;
R->input(Tiraj, Period, Index, Denumire);
ziar_electronic *ZE = new ziar_electronic;
cout << "\tZiar electronic" << endl;
cout << "Introduceri denumirea: ", cin >> Denumire;
cout << "Introduceri tirajul: ", cin >> Tiraj;
cout << "Introduceri indexul de abonare: ", cin >> Index;
cout << "Introduceri periodicitatea de publicare: ", cin >> Period;
ZE->input(Tiraj, Period, Index, Denumire);
cout << endl; Z->out();
cout << endl; R->out();
cout << endl; ZE->out();
ziar *Z2 = Z;
cout << endl << "Ziarul copiat:"; Z2->out();
}
5
MENIUL PROGRAMULUI
CONCLUZIA