Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. // ############################################################################
  5.  
  6. class Object
  7. {
  8. public:
  9.     Object();
  10.     ~Object();
  11.  
  12.     const int& getField0() const;
  13.     const float& getField1() const;
  14.  
  15.     void setField0(const int& value);
  16.     void setField1(const float& value);
  17.  
  18. private:
  19.     int m_field0;
  20.     float m_field1;
  21. };
  22.  
  23. // ############################################################################
  24.  
  25. int main()
  26. {
  27.     std::cout << "STOS:" << std::endl;
  28.     // tworzymy nową przestrzeń za pomocą nawiasów { } (tworzymy mały stos)
  29.     {
  30.         Object obj; // tutaj zostanie wywołany konstruktor
  31.         int v0 = obj.getField0(); // pobranie wartości z pola m_field0
  32.         obj.setField1(1.0f); // ustawienie nowej wartości pola m_field1
  33.     } // w tym momencie zostanie usunięty obj ze stosu, więc wykona się destruktor, niejawnie
  34.  
  35.     std::cout << std::endl << std::endl;
  36.    
  37.     std::cout << "STERTA:" << std::endl;
  38.     Object* obj = nullptr;      // deklaracja wskaznika, który wskazuje na nic
  39.     obj = new Object();         // wywołanie operatora new, który utworzy obiekt na stercie, wywołanie konstruktora
  40.     int v0 = obj->getField0();  // pobranie wartości z pola m_field0, (pamiętamy że jak są wskaźniki, to używamy strzałki)
  41.     obj->setField1(1.0f);       // ustawienie nowej wartości pola m_field1, (pamiętamy że jak są wskaźniki, to używamy strzałki)
  42.     delete obj;                 // wywołanie operatora delete, który usunie obiekt ze sterty, zostanie wywołany destruktor, jawnie
  43.  
  44.     std::cout << std::endl;
  45.     system("pause");
  46.     return 0;
  47. }
  48.  
  49. // ############################################################################
  50.  
  51. Object::Object()
  52.     : m_field0(0)
  53.     , m_field1(0.0f)
  54. {
  55.     std::cout << "Wywolanie z konstruktora" << std::endl;
  56. }
  57.  
  58. Object::~Object()
  59. {
  60.     std::cout << "Wywolanie z destruktora" << std::endl;
  61. }
  62.  
  63. const int& Object::getField0() const
  64. {
  65.     return m_field0;
  66. }
  67.  
  68. const float& Object::getField1() const
  69. {
  70.     return m_field1;
  71. }
  72.  
  73. void Object::setField0(const int& value)
  74. {
  75.     m_field0 = value;
  76. }
  77.  
  78. void Object::setField1(const float& value)
  79. {
  80.     m_field1 = value;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement