Advertisement
neogz

Preklapanje operatora i klasa zivotinja

Jan 18th, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class zivotinja
  5. {
  6.     char * _vrsta;
  7.     int _tezina;
  8.  
  9. public:
  10.     zivotinja(){
  11.         _vrsta = new char[1];
  12.         _vrsta[0] = '\0';
  13.  
  14.         _tezina = 0;
  15.     }
  16.     zivotinja(char * niz, int kg){
  17.         int vel = strlen(niz)+1;
  18.         _vrsta = new char[vel];
  19.         strcpy_s(_vrsta, vel, niz);
  20.  
  21.         _tezina = kg;
  22.     }
  23.     zivotinja(const zivotinja & org){
  24.         int vel = strlen(org._vrsta) + 1;
  25.         _vrsta = new char[vel];
  26.         strcpy_s(_vrsta, vel, org._vrsta);
  27.  
  28.         _tezina = org._tezina;
  29.     }
  30.     ~zivotinja(){
  31.         if (_vrsta != nullptr){
  32.             delete[]_vrsta;
  33.             _vrsta = nullptr;
  34.         }
  35.     }
  36.  
  37.     friend ostream & operator <<(ostream & COUT, zivotinja & obj);
  38.     friend istream & operator >>(istream & COUT, zivotinja & obj);
  39.     bool operator < (const zivotinja & obj){
  40.         if (this != &obj){
  41.             if (_tezina < obj._tezina) return true;
  42.             return false;
  43.         }
  44.         return false;
  45.     }
  46.     bool operator > (const zivotinja & obj){
  47.         if (this != &obj){
  48.             if (_tezina < obj._tezina) return false;
  49.             return true;
  50.         }
  51.         return false;
  52.     }
  53.     zivotinja operator = (const zivotinja& obj){
  54.         if (this != &obj){
  55.             delete[]_vrsta;
  56.             int vel = strlen(obj._vrsta) + 1;
  57.             _vrsta = new char[vel];
  58.             strcpy_s(_vrsta, vel, obj._vrsta);
  59.  
  60.             _tezina = obj._tezina;
  61.         }
  62.         return *this;
  63.     }
  64. };
  65. ostream & operator <<(ostream & COUT, zivotinja & obj){
  66.     COUT << "VRSTA: \t" << obj._vrsta << endl << "TEZINA: " << obj._tezina << endl;
  67.     return COUT;
  68. }
  69. istream & operator >>(istream & CIN, zivotinja & obj){
  70.     char temp[1000];
  71.     cin.getline(temp,1000);
  72.     delete[]obj._vrsta;
  73.     int vel = strlen(temp) + 1;
  74.     obj._vrsta = new char[vel];
  75.     strcpy_s(obj._vrsta, vel, temp);
  76.  
  77.     int tezina;
  78.     cin >> tezina;
  79.     obj._tezina = tezina;
  80.  
  81.     return CIN;
  82. }
  83.  
  84. int main(){
  85.  
  86.     zivotinja zec("Zec divlji",3);
  87.     zivotinja medo("medo sumski", 300);
  88.  
  89.     cin >> zec;
  90.     cout << zec;
  91.  
  92.    
  93.  
  94.     system("pause > null");
  95.     return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement