Advertisement
Guest User

Untitled

a guest
Dec 12th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3.  
  4. class CMieszacz {
  5. protected:
  6. const int m_nMix;
  7. static int pam;
  8. char* m_pNapis;
  9. public:
  10. CMieszacz(int m, char* napis);
  11. ~CMieszacz();
  12. CMieszacz(const CMieszacz & wzor);
  13. CMieszacz & operator=(const CMieszacz & wz);
  14. friend std::ostream & operator<<(std::ostream &wyjscie, const CMieszacz & wzor);
  15. };
  16.  
  17. int main(){
  18. CMieszacz japko(100, "somsiad"), banan(20, "passat");
  19. CMieszacz gruszka(japko);
  20. std::cout << japko << banan << gruszka;
  21. gruszka = japko = banan;
  22. std::cout << japko << banan << gruszka;
  23. int i;
  24. std::cin >> i;
  25. }
  26.  
  27. CMieszacz::CMieszacz(int m, char* napis):m_nMix(pam) {
  28. pam = m;
  29. int dl = strlen(napis);
  30. m_pNapis = new char[dl + 1];
  31. strcpy(m_pNapis, napis);
  32. }
  33. CMieszacz::~CMieszacz(){
  34. delete[] m_pNapis;
  35. m_pNapis = nullptr;
  36. }
  37. CMieszacz::CMieszacz(const CMieszacz & wzor):m_nMix(-wzor.m_nMix) {
  38. m_pNapis = new char[strlen(wzor.m_pNapis) + 1];
  39. strcpy(m_pNapis, wzor.m_pNapis);
  40. pam = wzor.pam;
  41. }
  42.  
  43. CMieszacz & CMieszacz::operator=(const CMieszacz & wz) {
  44. if (this != &wz) {
  45. this->~CMieszacz();
  46. m_pNapis = new char[strlen(wz.m_pNapis) + 1];
  47. strcpy(m_pNapis, wz.m_pNapis);
  48. pam = wz.pam;
  49. }
  50. return *this;
  51. }
  52. int CMieszacz::pam = 0;
  53. std::ostream & operator<<(std::ostream & wyjscie, const CMieszacz & wzor) {
  54.  
  55. return wyjscie << "m_nMix=" << wzor.m_nMix << "\n" << "pam=" << wzor.pam << "\n" << "m_pNapis=" << wzor.m_pNapis << "\n";
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement