Конструкторы и деструкторы


Предыдущая страница
Следующая страница  

Конструктор класса

Конструктор класса – это специальная функция-член класса, которая выполняется всякий раз, когда мы создаем новые объекты этого класса.

Конструктор имеет имя this и у него не должно быть никакого возвращаемого типа, даже void. Конструкторы могут быть очень полезны для установки начальных значений для некоторых переменных-членов.

В следующем примере иллюстрируется концепция конструктора:

import std.stdio;

class Line { 
   public: 
      void setLength( double len ) {
         length = len; 
      }
      double getLength() { 
         return length; 
      }
      this() { 
         writeln("Объект создаётся"); 
      }

   private: 
      double length; 
} 
 
void main( ) { 
   Line line = new Line(); 
   
   // задать длину линии 
   line.setLength(6.0); 
   writeln("Длина линии : " , line.getLength()); 
}

Когда вы скомпилируете и выполните эту программу, она возвратит следующий результат:

Объект создаётся
Длина линии : 6

Конструктор с параметрами

Конструктор по умолчанию не имеет никаких параметров, но если вам это нужно, конструктор может иметь параметры. Он поможет вам присвоить начальные значения объекту во время его создания, как показано в следующем примере:

Пример

import std.stdio;

class Line { 
   public: 
      void setLength( double len ) { 
         length = len; 
      }
      double getLength() { 
         return length; 
      }
      this( double len) { 
         writeln("Объект создаётся, length = " , len ); 
         length = len; 
      } 

   private: 
      double length; 
} 
 
// Главная функция программы 
void main( ) { 
   Line line = new Line(10.0);
   
   // получить изначально заданную длину. 
   writeln("Длина линии : ",line.getLength()); 
    
   // переустановить длину линии 
   line.setLength(6.0); 
   writeln("Длина линии : ", line.getLength()); 
}

Когда вы скомпилируете и выполните эту программу, она возвратит следующий результат:

Объект создаётся, length = 10
Длина линии : 10
Длина линии : 6

Деструктор класса

Деструктор – это особая функция-член класса, которая выполняется всякий раз, когда объект класса выходит из области видимости, или когда выражение удаления применяется к указателю на объект этого класса.

Деструктор имеет имя ~this, т.е. такое же, как и у конструктора, но префиксом тильды (~). Он не может ни возвращать значение, ни принимать какие-либо параметры. Деструктор может быть очень полезен для освобождения ресурсов перед выходом из программы, например, закрыть файлы, освободить память и т. д.

В следующем примере иллюстрируется концепция деструктора:

import std.stdio;

class Line { 
   public: 
      this() { 
         writeln("Объект создаётся"); 
      }

      ~this() { 
         writeln("Объект удаляется"); 
      } 

      void setLength( double len ) { 
         length = len; 
      } 

      double getLength() { 
         return length; 
      }
  
   private: 
      double length; 
}
  
// Главная функция программы 
void main( ) { 
   Line line = new Line(); 
   
   // задать длину линии 
   line.setLength(6.0); 
   writeln("Длина линии : ", line.getLength()); 
}

Когда вы скомпилируете и выполните эту программу, она возвратит следующий результат:

Объект создаётся
Длина линии : 6
Объект удаляется

Предыдущая страница
Следующая страница