Advertisement
neogz

YT | 6| DM | Specijalni clanovi klase

Jan 6th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. class Datum {
  6.     int _dan, _mjesec, _godina;
  7. public:
  8.     Datum(){
  9.         _dan = _mjesec = 1;
  10.         _godina = 1900;
  11.     }
  12.     Datum(int dan, int mjesec, int godina){
  13.         _dan = dan;
  14.         _mjesec = mjesec;
  15.         _godina = godina;
  16.  
  17.     }
  18.     void ispis(){
  19.         cout << _dan << "/" << _mjesec << "/" << _godina << endl;
  20.     }
  21. };
  22. class Student{
  23.     static int _indexBrojac;
  24.     const int _brojIndexa;
  25.     int & _grupa;
  26.     Datum * _datumRodjenja;
  27.     char * _imePrezime;
  28. public:
  29.     Student(int & ref, Datum datum, char *imePrezime) : _brojIndexa(_indexBrojac++), _grupa(ref){
  30.  
  31.         _datumRodjenja = new Datum(datum);
  32.         int vel = strlen(imePrezime) + 1;
  33.         _imePrezime = new char[vel];
  34.         strcpy_s(_imePrezime, vel, imePrezime);
  35.     }
  36.     ~Student(){
  37.         delete[]_imePrezime;
  38.         _imePrezime = nullptr;
  39.  
  40.         delete _datumRodjenja;
  41.         _datumRodjenja = nullptr;
  42.     }
  43.     //kkopije
  44.     Student(Student & org) :_brojIndexa(_indexBrojac++), _grupa(org._grupa){
  45.         _datumRodjenja = new Datum(*org._datumRodjenja);
  46.         int vel = strlen(org._imePrezime) + 1;
  47.         _imePrezime = new char[vel];
  48.         strcpy_s(_imePrezime, vel, org._imePrezime);
  49.     }
  50.     void ispis(){
  51.         cout << _brojIndexa << " " << _imePrezime << " " << _grupa << " ";
  52.         _datumRodjenja->ispis();
  53.        
  54.     }
  55.     void setImePrezime(char * ime){
  56.         if (strlen(_imePrezime) > 0) delete[]_imePrezime;
  57.         int vel = strlen(ime) +1;
  58.         _imePrezime = new char[vel];
  59.         strcpy_s(_imePrezime, vel, ime);
  60.        
  61.     }
  62.     int getIndexBrojac(){
  63.         return _indexBrojac;
  64.     }
  65.     static void BrojStudenata(){
  66.         cout << "Staticka funkcija " << endl;
  67.     }
  68. };
  69.  
  70. int Student::_indexBrojac = 0;
  71.  
  72. int main(){
  73.  
  74.     int grupa1 = 1;
  75.  
  76.     Student a ( grupa1, Datum(6, 1, 2014), "Nedim Fejzic");
  77.     Student b(a);
  78.  
  79.     a.ispis();
  80.     b.ispis();
  81.  
  82.     a.setImePrezime("Nedim Kopija Fejzic");
  83.     b.setImePrezime("Safet Kopija Isovic");
  84.  
  85.     a.ispis();
  86.     b.ispis();
  87.  
  88.     cout << a.getIndexBrojac() << endl << b.getIndexBrojac() << endl;
  89.  
  90.     Student::BrojStudenata();
  91.  
  92.     system("pause > null");
  93.     return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement