Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <iterator>
- #include <memory>
- using namespace std;
- class Fruct{
- public:
- Fruct(const string& nume, int pret, int valabilitate, int cantitate):
- nume(nume),pret(pret),valabilitate(valabilitate),cantitate(cantitate) {}
- virtual void print(ostream &);
- const string& getNume() const;
- protected:
- string nume;
- int pret,valabilitate,cantitate;
- };
- void Fruct::print(ostream &os) {
- os << " " << nume << " " << pret << " " << cantitate;
- }
- const string& Fruct::getNume() const {
- return nume;
- }
- ostream& operator<<(ostream& os, Fruct& f) {
- f.print(os);
- return os;
- }
- class Autohton:public Fruct{
- string judet,producator;
- public:
- Autohton(const string& nume, int pret, int valabilitate,int cantitate,const string& judet,const string& producator):
- Fruct(nume, pret, valabilitate, cantitate), judet(judet), producator(producator) {}
- void print(ostream &os);
- };
- void Autohton::print(ostream &os) {
- Fruct::print(os);
- os << " " << judet << " " << producator;
- }
- class Import:public Fruct{
- string tara,importator;
- public:
- Import(const string& nume, int pret, int valabilitate,int cantitate,const string& tara,const string& importator):
- Fruct(nume, pret, valabilitate, cantitate), tara(tara), importator(importator) {}
- void print(ostream &os);
- };
- void Import::print(ostream &os) {
- Fruct::print(os);
- os << " " << tara << " " << importator;
- }
- int main() {
- vector<unique_ptr<Fruct>> fructe;
- fructe.push_back(make_unique<Autohton>("mar", 4, 3, 1, "buzau", "mere SRL"));
- fructe.push_back(make_unique<Import>("banana", 10, 2, 1, "Brazilia", "banane SRL"));
- for (const auto& fruct: fructe) {
- cout << *fruct << "\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement