Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //main.cpp
- #include <iostream>
- #include "Sklad.h"
- #include "Tovar.h"
- using namespace std;
- int main() {
- Tovar t1;
- Tovar t2;
- t1.setNazov("auto");
- t1.setCena(9999);
- t1.setPocetKusov(5);
- t2.setNazov("bicykel");
- t2.setCena(500);
- t2.setPocetKusov(10);
- cout << t1 << endl << t2 << endl;
- cout << (t1 < t2) << endl;
- Tovar::styp = 1;
- cout << (t1 < t2) << endl;
- return 0;
- }
- //Tovar.h
- #pragma once
- #include <string>
- #include <ostream>
- using namespace std;
- char* kopiruj(const char* c);
- class Tovar {
- private:
- char* nazov = nullptr;
- double cena = 0;
- int pocetKusov = 0;
- public:
- static int styp; //sortovaci typ
- ~Tovar() {
- delete[] nazov;
- }
- Tovar& operator=(const Tovar& zdroj) {
- if (this != &zdroj) {
- delete[] nazov;
- nazov = kopiruj(zdroj.nazov);
- cena = zdroj.cena;
- pocetKusov = zdroj.pocetKusov;
- }
- return *this;
- }
- char* getNazov() { return nazov; }
- double getCena() { return cena; }
- int getPocetKusov() { return pocetKusov; }
- void setNazov(const char* pNazov) { nazov = kopiruj(pNazov); }
- void setCena(double pCena) { this->cena = pCena; }
- void setPocetKusov(int pPocetKusov) { this->pocetKusov = pPocetKusov; }
- friend bool operator<(Tovar &op1, Tovar &op2);
- friend ostream& operator<<(ostream &os, Tovar &h);
- };
- //Tovar.cpp
- #include "Tovar.h"
- int Tovar::styp = 0;
- char* kopiruj(const char* zdroj) {
- if (zdroj && *zdroj) {
- int dlzka = strlen(zdroj);
- char* kopia = new char[dlzka + 1];
- strcpy(kopia, zdroj);
- return kopia;
- }
- return nullptr;
- }
- bool operator<(Tovar& op1, Tovar& op2) {
- int ret = 0;
- int retNazov = strcmp(op1.nazov, op2.nazov);
- int retCena = op1.cena - op2.cena;
- int retPocet = op1.pocetKusov - op2.pocetKusov;
- switch (Tovar::styp) {
- case 0:
- ret = retNazov;
- if (ret == 0) {
- ret = retCena;
- if (ret == 0) ret = retPocet;
- }
- break;
- case 1:
- ret = retCena;
- if (ret == 0) {
- ret = retNazov;
- if (ret == 0) ret = retPocet;
- }
- break;
- case 2:
- ret = retPocet;
- if (ret == 0) {
- ret = retNazov;
- if (ret == 0) ret = retCena;
- }
- break;
- }
- return ret < 0;
- }
- ostream& operator<<(ostream& os, Tovar& h) {
- os << "Nazov: " << h.nazov << "\tCena: " << h.cena << "\tPocet: " << h.pocetKusov;
- return os;
- }
- //Sklad.h
- #pragma once
- #include "Tovar.h"
- class Sklad {
- };
- //Sklad.cpp
- #include "Sklad.h"
- #include "Tovar.h"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement