Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator>
  4. #include <memory>
  5.  
  6. using namespace std;
  7.  
  8. class Fruct{
  9. public:
  10. Fruct(const string& nume, int pret, int valabilitate, int cantitate):
  11. nume(nume),pret(pret),valabilitate(valabilitate),cantitate(cantitate) {}
  12.  
  13. virtual void print(ostream &);
  14.  
  15. const string& getNume() const;
  16.  
  17. protected:
  18. string nume;
  19. int pret,valabilitate,cantitate;
  20. };
  21.  
  22. void Fruct::print(ostream &os) {
  23. os << " " << nume << " " << pret << " " << cantitate;
  24. }
  25.  
  26. const string& Fruct::getNume() const {
  27. return nume;
  28. }
  29.  
  30. ostream& operator<<(ostream& os, Fruct& f) {
  31. f.print(os);
  32. return os;
  33. }
  34.  
  35. class Autohton:public Fruct{
  36. string judet,producator;
  37. public:
  38. Autohton(const string& nume, int pret, int valabilitate,int cantitate,const string& judet,const string& producator):
  39. Fruct(nume, pret, valabilitate, cantitate), judet(judet), producator(producator) {}
  40.  
  41. void print(ostream &os);
  42. };
  43.  
  44. void Autohton::print(ostream &os) {
  45. Fruct::print(os);
  46. os << " " << judet << " " << producator;
  47. }
  48.  
  49. class Import:public Fruct{
  50. string tara,importator;
  51. public:
  52. Import(const string& nume, int pret, int valabilitate,int cantitate,const string& tara,const string& importator):
  53. Fruct(nume, pret, valabilitate, cantitate), tara(tara), importator(importator) {}
  54. void print(ostream &os);
  55. };
  56.  
  57. void Import::print(ostream &os) {
  58. Fruct::print(os);
  59. os << " " << tara << " " << importator;
  60. }
  61.  
  62. int main() {
  63. vector<unique_ptr<Fruct>> fructe;
  64.  
  65. fructe.push_back(make_unique<Autohton>("mar", 4, 3, 1, "buzau", "mere SRL"));
  66. fructe.push_back(make_unique<Import>("banana", 10, 2, 1, "Brazilia", "banane SRL"));
  67.  
  68. for (const auto& fruct: fructe) {
  69. cout << *fruct << "\n";
  70. }
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement