Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Sadnica {
- protected:
- char * ime;
- float osnovna_cena;
- public:
- Sadnica () {}
- Sadnica(char * _ime, float _osnovna_cena) {
- ime = new char[strlen(_ime)];
- strcpy(ime, _ime);
- osnovna_cena = _osnovna_cena;
- }
- Sadnica(const Sadnica & tmp) {
- ime = new char[strlen(tmp.ime)];
- strcpy(ime, tmp.ime);
- osnovna_cena = tmp.osnovna_cena;
- }
- Sadnica & operator = (Sadnica tmp) {
- ime = new char[strlen(tmp.ime)];
- strcpy(ime, tmp.ime);
- osnovna_cena = tmp.osnovna_cena;
- return *this;
- }
- ~Sadnica () {}
- virtual float presmetaj_cena() {
- return osnovna_cena;
- }
- virtual void pechati() {
- cout << ime << " " << presmetaj_cena() << endl;
- }
- };
- class Drvo : public Sadnica {
- protected:
- int meseci;
- public:
- Drvo() : Sadnica() {
- }
- Drvo(char * _ime, float _osnovna_cena, int _meseci) : Sadnica(_ime, _osnovna_cena) {
- meseci = _meseci;
- }
- Drvo(const Drvo & tmp) : Sadnica(tmp) {
- meseci = tmp.meseci;
- }
- Drvo & operator = (Drvo tmp) {
- meseci = tmp.meseci;
- return *this;
- }
- ~Drvo() {}
- virtual float presmetaj_cena() override {
- float cena = Sadnica::presmetaj_cena();
- int kolku = meseci / 2;
- for(int i = 0; i < kolku; i++) {
- cena = cena + (0.1 * cena);
- }
- return cena;
- }
- virtual void pechati() override {
- Sadnica::pechati();
- cout << meseci << " " << presmetaj_cena() << endl;
- }
- };
- class Cvet : public Sadnica {
- protected:
- int denovi;
- public:
- Cvet() : Sadnica() {
- }
- Cvet(char * _ime, float _osnovna_cena, int _denovi) : Sadnica(_ime, _osnovna_cena) {
- denovi = _denovi;
- }
- Cvet(const Cvet & tmp) : Sadnica(tmp) {
- denovi = tmp.denovi;
- }
- Cvet & operator = (Cvet tmp) {
- denovi = tmp.denovi;
- return *this;
- }
- ~Cvet() {}
- virtual float presmetaj_cena() override {
- float cena = Sadnica::presmetaj_cena();
- if(denovi < 14) {
- cena /= 2.0;
- }
- return cena;
- }
- virtual void pechati() override {
- Sadnica::pechati();
- cout << denovi << " " << presmetaj_cena() << endl;
- }
- };
- void fja(Sadnica ** niza, int n) {
- float cena = niza[0]->presmetaj_cena();
- int idx = 0;
- for(int i = 0; i < n; i++) {
- if(niza[i]->presmetaj_cena() > cena) {
- cena = niza[i]->presmetaj_cena();
- idx = i;
- }
- }
- niza[idx]->pechati();
- }
- int main() {
- Sadnica *niza[20];
- Drvo m("Lipa",400,12);
- Cvet sl1("Lubicica",300,20),sl2("Krin",400,10);
- niza[0]=&m;
- niza[1]=&sl1;
- niza[2]=&sl2;
- fja(niza,3);
- sl2=sl1;
- sl2.pechati();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment