Advertisement
m4ly

Se..

Jan 2nd, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.85 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. class Seks
  7. {
  8. private:
  9.     string zKim;
  10.     char *zKimTab;
  11.     int sizeTab;
  12.     static int ileRazy;
  13.  
  14. public:
  15.     Seks(double dziewczyny);
  16.     Seks();
  17.     Seks(const char *kto);
  18.     Seks(string* kto);
  19.     Seks(const string kto);
  20.     Seks(const Seks &);
  21.     ~Seks();
  22.  
  23.  
  24. };
  25.  
  26. int Seks::ileRazy = 0;
  27. Seks::Seks(const char *ktoTab)
  28. {
  29.     cout << "6. Seks::Seks(const char *ktoTab)" << endl;
  30.     size_t size = strlen(ktoTab);
  31.     zKimTab = new char[size + 1];
  32.     memset(zKimTab, 0, size + 1);
  33.     memcpy(zKimTab, ktoTab, size);
  34.    
  35.     sizeTab = size + 1;
  36.  
  37.     ileRazy++;
  38. }
  39.  
  40. Seks::Seks()
  41. {
  42.    
  43.     cout << "1. Seks::Seks()" << endl;
  44.     ileRazy++;
  45.     zKimTab = NULL;
  46. }
  47.  
  48. Seks::Seks(const string kto) : zKim(kto)
  49. {
  50.     cout << "7. Seks::Seks(const string kto)" << endl;
  51.     ileRazy++;
  52.     zKimTab = NULL;
  53. }
  54.  
  55. Seks::Seks(string *kto) : zKim(*kto)
  56. {
  57.     cout << "2. Seks::Seks(string &kto)" << endl;
  58.     ileRazy++;
  59.     zKimTab = NULL;
  60. }
  61.  
  62. Seks::Seks(const Seks &seksorg)
  63. {
  64.     cout << "3. Seks::Seks(const Seks &) - k. kopiujacy" << endl;
  65.     if (seksorg.zKimTab != NULL)
  66.     {
  67.         sizeTab = seksorg.sizeTab;
  68.         zKimTab = new char[sizeTab + 1];
  69.  
  70.         memset(zKimTab, 0, sizeTab + 1);
  71.         memcpy(zKimTab, seksorg.zKimTab, sizeTab);
  72.     }
  73.  
  74. }
  75.  
  76. Seks::~Seks()
  77. {
  78.     if (zKimTab != NULL)
  79.     {
  80.         delete[] zKimTab;
  81.         sizeTab = 0;
  82.         zKimTab = NULL;
  83.     }
  84.  
  85.     ileRazy--;
  86.     zKim = "";
  87.     cout << "4. Seks::~Seks()" << endl;
  88. }
  89.  
  90. Seks::Seks(double dziewczyny)
  91. {
  92.    
  93.     cout << "5. Seks::Seks(double dziewczyny)" << endl;
  94.     ileRazy++;
  95.     zKimTab = NULL;
  96. }
  97.  
  98. int main(void)
  99. {
  100.     int breakpoint = 0;
  101.  
  102.     {
  103.     cout << "-- Opcja 1: --" << endl;
  104.     char *napis = "aaaa";
  105.     Seks sx1 = Seks(napis);
  106.     breakpoint = 0; // a) ustaw tu breakpointa. co się pojawi i dlaczego tak?
  107.    
  108.     cout << "-- Opcja 2: --" << endl;
  109.     const string fl = "opcja2";
  110.     Seks sx2 = Seks(fl);
  111.     breakpoint = 0;
  112.     //b) ustaw tu breakpointa. co się pojawi i dlaczego tak ?
  113.     // Wywola sie konstruktor kopiujacy ponieważ ?
  114.  
  115.     cout << "-- Opcja 3: --" << endl;
  116.     string *ptr = new string("opcja3");
  117.     Seks sx3 = Seks(ptr);
  118.     breakpoint = 0; // b) ustaw tu breakpointa. co się pojawi i dlaczego tak ?
  119.     delete ptr; // mozemy usunac bo juz mamy kopie stringu  "opcja3" w sx3, dzieki: Seks::Seks(string *kto) : zKim(*kto)
  120.    
  121.     cout << "-- Opcja 4 --" << endl;
  122.     Seks sx4;
  123.     breakpoint = 0; // c) ustaw tu breakpointa. co się pojawi i dlaczego tak ? // jasne
  124.    
  125.     cout << "-- Opcja 5: --" << endl;
  126.     Seks sx5 = Seks(2);
  127.     breakpoint = 0; // d) ustaw tu breakpointa. co się pojawi i dlaczego tak ? // jasne
  128.  
  129.     cout << "-- Opcja 6: --" << endl;
  130.     cout << "Tworze obiekt *: " << endl;
  131.     Seks *sx6 = new Seks("XXX");
  132.     breakpoint = 0; // f1) ustaw breakpointa. co sie pojawi i dlaczego ? // jasne
  133.     cout << "Usuwam obiekt *: " << endl;
  134.     delete sx6;
  135.     breakpoint = 0; // f2) ustaw breakpointa. co sie pojawi i dlaczego ? // jasne
  136. }
  137.    
  138.     return 0;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement