borisdexter

Objektno nasleduvanje

Jan 22nd, 2020
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.19 KB | None | 0 0
  1. /*
  2. class Zivotno{
  3. protected:
  4.     char boja[15];
  5.     int godini;
  6. public:
  7.     Zivotno(){
  8.     cout<<"Default constructor zivotno"<<endl;
  9.     }
  10.     Zivotno(char boja[],int godini){
  11.     cout<<"Parameter constructor zivotno"<<endl;
  12.     strcpy(this->boja,boja);
  13.     this->godini=godini;
  14.     }
  15.     void print(){
  16.     cout<<boja<<" "<<godini<<endl;
  17.     }
  18.     ~Zivotno(){
  19.     cout<<"Default destructor zivotno"<<endl;
  20.     }
  21. };
  22. class Kuce:public Zivotno{
  23. private:
  24.     char rasa[15];
  25. public:
  26.     Kuce(){
  27.     cout<<"Default constructor Kuce"<<endl;
  28.     }
  29.     Kuce(char boja[],int godini,char rasa[]):Zivotno(boja,godini){
  30.     cout<<"Parameter constructor Kuce"<<endl;
  31.     //strcpy(this->boja,boja);
  32.     //this->godini=godini;
  33.     strcpy(this->rasa,rasa);
  34.     }
  35.     // override na zivotno funkcijata
  36.     void print(){
  37.     Zivotno::print();
  38.     cout<<rasa<<endl;
  39.     }
  40.     ~Kuce(){
  41.     cout<<"Default destructor Kuce"<<endl;
  42.     }
  43. };
  44.  
  45. class Mace:public Zivotno{
  46. private:
  47.     bool daliPrede;
  48. public:
  49.     Mace(){
  50.     cout<<"Default constructor Mace"<<endl;
  51.     }
  52.     Mace(char boja[],int godini,bool daliPrede):Zivotno(boja,godini){
  53.     this->daliPrede=daliPrede;
  54.     }
  55.     // override
  56.     void print(){
  57.     cout<<boja<<" "<<godini<<" "<<daliPrede<<endl;
  58.     }
  59.  
  60.     ~Mace(){
  61.     cout<<"Default destructor Mace"<<endl;
  62.     }
  63. };
  64. int main(){
  65. Zivotno random("Bela",2);
  66. cout<<random.godini<<endl;
  67. return 0;
  68. }
  69.  
  70. */
  71.  
  72. /*
  73. class Runner{
  74. private:
  75.     char *ime;
  76.     int sekundi;
  77. public:
  78.     Runner(){
  79.     // koga pravime prazen objekt resetirame dinamicki alocirani promenlivi
  80.     ime=new char[0];
  81.     }
  82.  
  83.     Runner(char *ime,int sekundi){
  84.     this->ime=new char[0];
  85.     this->ime=new char[strlen(ime)+1];
  86.     strcpy(this->ime,ime);
  87.     this->sekundi=sekundi;
  88.     }
  89.  
  90.     Runner &operator=(Runner &drugTrkac){
  91.     this->sekundi=drugTrkac.sekundi;
  92.     delete []this->ime;
  93.     this->ime=new char[strlen(drugTrkac.ime)+1];
  94.     strcpy(this->ime,drugTrkac.ime);
  95.     return *this;
  96.     }
  97.  
  98.     friend istream &operator>>(istream &input, Runner &trkac){
  99.     input>>trkac.ime>>trkac.sekundi;
  100.     return input;
  101.     }
  102.  
  103.     friend ostream &operator<<(ostream &output, Runner &trkac){
  104.     output<<trkac.ime<<" "<<trkac.sekundi<<endl;
  105.     return output;
  106.     }
  107.  
  108.     Runner &operator+=(int nekojInteger){
  109.     this->sekundi+=nekojInteger;
  110.     return *this;
  111.     }
  112.  
  113.     bool operator!=(Runner &drugTrkac){
  114.     if(strcmp(ime,drugTrkac.ime)!=0){
  115.             return true;
  116.     }
  117.     return false;
  118.     }
  119.  
  120.     ~Runner(){
  121.     // briseme vo destructor site dinamicki alocirani promenlivi
  122.     delete []ime;
  123.     }
  124. };
  125.  
  126. class Trka{
  127. private:
  128.     Runner *niza;
  129.     int n;
  130.     char ime[20];
  131. public:
  132.     Trka(){
  133.     niza=new Runner[0];
  134.     n=0;
  135.     }
  136.     Trka(char ime[]){
  137.     strcpy(this->ime,ime);
  138.     niza=new Runner[0];
  139.     n=0;
  140.     }
  141.  
  142.     Trka &operator+=(Runner &novTrkac){
  143.     Runner *tempNiza=new Runner[n];
  144.     for(int i=0;i<n;i++){
  145.         tempNiza[i]=niza[i];
  146.     }
  147.     niza=new Runner[n+1];
  148.     for(int i=0;i<n;i++){
  149.         niza[i]=tempNiza[i];
  150.     }
  151.     delete []tempNiza;
  152.     niza[n]=novTrkac;
  153.     n++;
  154.     return *this;
  155.     }
  156.  
  157.     void printTrkaci(){
  158.     cout<<"Printame trkaci za trkata "<<ime<<endl;
  159.     for(int i=0;i<n;i++){
  160.         cout<<niza[i];
  161.     }
  162.     }
  163.  
  164.  
  165.     Trka &operator-=(Runner &trkac){
  166.     int flag=0;
  167.     for(int i=0;i<n;i++){
  168.         if(niza[i]!=trkac){
  169.         }else{
  170.         flag=1;
  171.         }
  172.     }
  173.     if(flag==1){
  174.     // vasiot kod tuka
  175.     int brojac=0;
  176.     Runner *tempNiza=new Runner[n-1];
  177.     for(int i=0;i<n;i++){
  178.         if(niza[i]!=trkac){
  179.             tempNiza[brojac]=niza[i];
  180.             brojac++;
  181.         }
  182.     }
  183.     n--;
  184.     niza=new Runner[n];
  185.     for(int i=0;i<n;i++){
  186.         niza[i]=tempNiza[i];
  187.     }
  188.     delete []tempNiza;
  189.     }
  190.     return *this;
  191.     }
  192.  
  193.     // go printa najbrziot trkac od nizata
  194.     void najbrzTrkac(){
  195.     // vasiot kod tuka
  196.     }
  197.     ~Trka(){
  198.     delete []niza;
  199.     }
  200. };
  201. int main(){
  202. Runner prv("Petar",19);
  203. Runner vtor("Anja",20);
  204. Runner tret("Maja",18);
  205. Trka t("Gradski Stadion");
  206. t+=prv;
  207. t+=vtor;
  208. t+=tret;
  209. t.printTrkaci();
  210. t-=prv;
  211. t.printTrkaci();
  212. return 0;
  213. }
  214. */
Advertisement
Add Comment
Please, Sign In to add comment