Pp9

konstruktory

Pp9
Mar 26th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.27 KB | None | 0 0
  1. // Zadanie 4.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <stdlib.h>
  7.  
  8. using namespace std;
  9.  
  10. class Stos
  11. {
  12.     int *tab;
  13.     int rozmiar, wierzcholek;
  14.  
  15. public:
  16.  
  17.     //konstruktor tworzacy tablice danego rozmiaru
  18.     Stos(int wielkosc)
  19.     {
  20.         tab = new int[wielkosc];
  21.         wierzcholek = -1;
  22.         rozmiar = wielkosc;
  23.         cout << "TU KONSTRUKTOR Z 1 PARAMETREM!" << endl << "Adres stosu: " << tab << endl;
  24.     }
  25.  
  26.     //konstruktor bezparametrowy tworzacy 10 elementowa tablice
  27.     Stos()
  28.     {
  29.         tab = new int[10];
  30.         wierzcholek = -1;
  31.         rozmiar = 10;
  32.         cout << "TU KONSTRUKTOR BEZPARAMETROWY!" << endl << "Adres stosu: " << tab << endl;
  33.     }
  34.  
  35.     //konstruktor kopiujący
  36.     Stos(Stos& tmp)
  37.     {
  38.         tab = new int[tmp.rozmiar];
  39.         rozmiar = tmp.rozmiar;
  40.         wierzcholek = tmp.wierzcholek;
  41.         cout << "TU KONSTRUKTOR KOPIUJACY!" << endl << "Adres stosu: " << tab << endl;
  42.     }
  43.  
  44.     //destruktor usuwajacy tablice z pamieci
  45.     ~Stos()
  46.     {
  47.         cout << "TU DESTRUKTOR!" << endl << "Adres stosu: " << tab << endl;
  48.         delete[] tab;
  49.     }
  50.  
  51.     //inicjacja stosu, który jest tablica int
  52.     void init(int x)
  53.     {
  54.         tab = new int[x];
  55.         wierzcholek = -1;
  56.         rozmiar = x;
  57.     }
  58.  
  59.     //metoda usuwajaca tablice z pamieci
  60.     void destroy()
  61.     {
  62.         delete[] tab;
  63.     }
  64.  
  65.     //metoda umieszczajaca liczbe na tablica
  66.     void push(int y)
  67.     {
  68.         if (!full()) tab[++wierzcholek] = y;
  69.         else cout << "Stos jest pelny, nic nie moge dopisac!" << endl;
  70.     }
  71.  
  72.     //metoda zdejmujaca liczbe z wierzcholka
  73.     void pop()
  74.     {
  75.         --wierzcholek;
  76.     }
  77.  
  78.     //metoda zwracajaca liczbe z wierzcholka stosu
  79.     int top()
  80.     {
  81.         if (empty())
  82.         {
  83.             cout << "Nie moge przeczytac liczby, bo stos jest pusty!" << endl;
  84.         }
  85.         return tab[wierzcholek];
  86.     }
  87.  
  88.     //metoda zwracajaca wartosc 1 dla pustego stosu lub 0 dla nie pustego
  89.     int empty()
  90.     {
  91.         if (wierzcholek == -1) return 1;
  92.         else return 0;
  93.     }
  94.  
  95.     //metoda zwracajaca wartosc 1 dla stosu pelnego lub 0 dla niepelnego
  96.     int full()
  97.     {
  98.         if (wierzcholek == (rozmiar - 1)) return 1;
  99.         else return 0;
  100.     }
  101.  
  102. };
  103.  
  104. //funkcja zewnetrzna
  105. void dodaj(Stos s, int a) {
  106.     s.push(a);
  107. }
  108.  
  109.  
  110. int _tmain(int argc, _TCHAR* argv[])
  111. {
  112.     Stos s;
  113.     s.push(0);
  114.     dodaj(s, 1);
  115.     dodaj(s, 2);
  116.     while (!s.empty()) {
  117.         cout <<
  118.             s.top();
  119.         s.pop();
  120.     }
  121.     getchar();
  122.     return 0;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment