Professional Documents
Culture Documents
Restaurant
Restaurant
class Restaurant {
public:
this->nrMeniuri = nr;
this->preturi = new int[nr];
// copeire const
Restaurant(const Restaurant& sursa) :id(nrRestaurante++)
{
}
//op =
Restaurant& operator=(const Restaurant& sursa)
{
if (preturi) {
delete[] preturi;
}
if (nume) {
delete[] nume;
}
this->nrMeniuri = sursa.nrMeniuri;
this->preturi = new int[sursa.nrMeniuri];
int* getPreturi() {
return this->preturi;
}
int getNrMeniuri() {
return this->nrMeniuri;
}
int getID() {
return this->id;
}
//destructor
~Restaurant() {
if (preturi) {
delete[] preturi;
}
if (nume) {
delete[] nume;
}
nrRestaurante--;
}
//afisare
friend ostream& operator << (ostream & o, Restaurant sursa) {
return o;
}
//citirea unui ob
friend istream& operator>>(istream& in, Restaurant& sursa) {
if (sursa.preturi) {
delete[] sursa.preturi;
}
sursa.preturi = new int[sursa.nrMeniuri];
for (int i = 0; i < sursa.nrMeniuri; i++) {
cout << "da pret pt meniu " << i + 1 << ": ";
in >> sursa.preturi[i];
}
return in;
}
float operator()() {
float m = 0;
for (int i = 0; i < nrMeniuri; i++) {
m += preturi[i];
}
return m;
}
bool operator==(Restaurant r) {
return r.nrMeniuri == nrMeniuri;
}
};
int Restaurant::nrRestaurante = 0;
void main() {
Restaurant r;
Restaurant r1("terasa", 3, new int[3]{ 6,12,43 });
Restaurant r2("Terasa nova");
Restaurant r3(r2);
r = r1;
cin >> r1;
cout << r1;
r1.setMeniuri(4, new int[4]{ 4, 6,12,43 });
r1.setNume("terasa nova mare");
cout << r.getID() << endl;
cout << r1.getNrMeniuri() << endl;
cout << r1.getNume() << endl;
cout << r1.getPreturi()[0] << endl;
++r1;
r+=1;
cout << (int)r1;
//cout << r1;
cout << (r1 == r2) << endl;
cout << r1[0] << endl;
}