Professional Documents
Culture Documents
RVGRSDFD
RVGRSDFD
#include<string>
#include<vector>
#include<fstream>
#include<map>
using namespace std;
class Termo
{
char*eticheta;
float tempCitita;
float tempDorita;
public:
virtual float tempMedieCitita()
{
return(this->tempCitita + this->tempDorita) / 2;
}
char*get_eticheta()
{
return eticheta;
}
float get_tempCitita()
{
return tempCitita;
}
float get_tempDorita()
{
return tempDorita;
}
void set_tempCitita(float tempCitita)
{
if (this->tempCitita > 0)
this->tempCitita = tempCitita;
}
void set_tempDorita(float tempDorita)
{
if (this->tempDorita > 0)
this->tempDorita = tempDorita;
}
void set_eticheta(char*eticheta)
{
if (this->eticheta != NULL)
delete[]this->eticheta;
this->eticheta = new char[strlen(eticheta) + 1];
strcpy(this->eticheta, eticheta);
}
Termo()
{
this->eticheta = new char[strlen("Eti") + 1];
strcpy(this->eticheta, "Eti");
this->tempCitita = 10;
this->tempDorita = 16;
}
Termo(char*eticheta, float tempCitita, float tempDorita)
{
this->tempCitita = tempCitita;
this->tempDorita = tempDorita;
this->eticheta = new char[strlen(eticheta) + 1];
strcpy(this->eticheta, eticheta);
}
Termo(const Termo&a)
{
this->tempCitita = a.tempCitita;
this->tempDorita = a.tempDorita;
this->eticheta = new char[strlen(a.eticheta) + 1];
strcpy(this->eticheta, a.eticheta);
}
~Termo()
{
delete[]this->eticheta;
}
Termo& operator=(const Termo& temp)
{
this->tempCitita = temp.tempCitita;
this->tempDorita = temp.tempDorita;
delete[]this->eticheta;
this->eticheta = new char[strlen(temp.eticheta) + 1];
strcpy(this->eticheta, temp.eticheta);
return *this;
}
friend ostream& operator<<(ostream&out, Termo b)
{
out << "Eticheta" << b.eticheta << endl;
out << "Temperatura citita" << b.tempCitita << endl;
out << "Temperatura dorita" << b.tempDorita << endl;
return out;
}
friend istream&operator>>(istream&in, Termo& c)
{
cout << "TempC:" << endl;
in >> c.tempCitita;
cout << "TempD:" << endl;
in >> c.tempDorita;
cout << "Etcheta estE:" << endl;
char aux[30];
in >> aux;
delete[]c.eticheta;
c.eticheta = new char[strlen(aux) + 1];
strcpy(c.eticheta, aux);
return in;
}
Termo operator--()
{
this->tempDorita--;
return *this;
}
friend ifstream& operator>>(ifstream&in, Termo& a)
{
in.ignore();
char buffer[50];
in.getline(buffer, 50);
a.set_eticheta(buffer);
in >> a.tempCitita;
in >> a.tempDorita;
return in;
}
};
class biTermo :public Termo
{
private:float tempPardosealaCitita;