Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <iostream>
- using namespace std;
- class Seks
- {
- private:
- string zKim;
- char *zKimTab;
- int sizeTab;
- static int ileRazy;
- public:
- Seks(double dziewczyny);
- Seks();
- Seks(const char *kto);
- Seks(string* kto);
- Seks(const string kto);
- Seks(const Seks &);
- ~Seks();
- };
- int Seks::ileRazy = 0;
- Seks::Seks(const char *ktoTab)
- {
- cout << "6. Seks::Seks(const char *ktoTab)" << endl;
- size_t size = strlen(ktoTab);
- zKimTab = new char[size + 1];
- memset(zKimTab, 0, size + 1);
- memcpy(zKimTab, ktoTab, size);
- sizeTab = size + 1;
- ileRazy++;
- }
- Seks::Seks()
- {
- cout << "1. Seks::Seks()" << endl;
- ileRazy++;
- zKimTab = NULL;
- }
- Seks::Seks(const string kto) : zKim(kto)
- {
- cout << "7. Seks::Seks(const string kto)" << endl;
- ileRazy++;
- zKimTab = NULL;
- }
- Seks::Seks(string *kto) : zKim(*kto)
- {
- cout << "2. Seks::Seks(string &kto)" << endl;
- ileRazy++;
- zKimTab = NULL;
- }
- Seks::Seks(const Seks &seksorg)
- {
- cout << "3. Seks::Seks(const Seks &) - k. kopiujacy" << endl;
- if (seksorg.zKimTab != NULL)
- {
- sizeTab = seksorg.sizeTab;
- zKimTab = new char[sizeTab + 1];
- memset(zKimTab, 0, sizeTab + 1);
- memcpy(zKimTab, seksorg.zKimTab, sizeTab);
- }
- }
- Seks::~Seks()
- {
- if (zKimTab != NULL)
- {
- delete[] zKimTab;
- sizeTab = 0;
- zKimTab = NULL;
- }
- ileRazy--;
- zKim = "";
- cout << "4. Seks::~Seks()" << endl;
- }
- Seks::Seks(double dziewczyny)
- {
- cout << "5. Seks::Seks(double dziewczyny)" << endl;
- ileRazy++;
- zKimTab = NULL;
- }
- int main(void)
- {
- int breakpoint = 0;
- {
- cout << "-- Opcja 1: --" << endl;
- char *napis = "aaaa";
- Seks sx1 = Seks(napis);
- breakpoint = 0; // a) ustaw tu breakpointa. co się pojawi i dlaczego tak?
- cout << "-- Opcja 2: --" << endl;
- const string fl = "opcja2";
- Seks sx2 = Seks(fl);
- breakpoint = 0;
- //b) ustaw tu breakpointa. co się pojawi i dlaczego tak ?
- // Wywola sie konstruktor kopiujacy ponieważ ?
- cout << "-- Opcja 3: --" << endl;
- string *ptr = new string("opcja3");
- Seks sx3 = Seks(ptr);
- breakpoint = 0; // b) ustaw tu breakpointa. co się pojawi i dlaczego tak ?
- delete ptr; // mozemy usunac bo juz mamy kopie stringu "opcja3" w sx3, dzieki: Seks::Seks(string *kto) : zKim(*kto)
- cout << "-- Opcja 4 --" << endl;
- Seks sx4;
- breakpoint = 0; // c) ustaw tu breakpointa. co się pojawi i dlaczego tak ? // jasne
- cout << "-- Opcja 5: --" << endl;
- Seks sx5 = Seks(2);
- breakpoint = 0; // d) ustaw tu breakpointa. co się pojawi i dlaczego tak ? // jasne
- cout << "-- Opcja 6: --" << endl;
- cout << "Tworze obiekt *: " << endl;
- Seks *sx6 = new Seks("XXX");
- breakpoint = 0; // f1) ustaw breakpointa. co sie pojawi i dlaczego ? // jasne
- cout << "Usuwam obiekt *: " << endl;
- delete sx6;
- breakpoint = 0; // f2) ustaw breakpointa. co sie pojawi i dlaczego ? // jasne
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement