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

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

}::~String( ) // Освобождение памяти

{<< "Строка" << QuoteString;QuoteString;= (char *) 0;<< "Освобождена\n";

}

void main( )

{

String First("Первая строка"); // Вызов конструктора First

{

String Second("Вторая строка"); // Вызов конструктора

// для Second

// Операторы программы

} // Вызов деструктора

// для Second

// Операторы программы

} // Вызов деструктора

// для First

 

Результатом работы этой программы будет следующее сообщение:

СтрокаПервая строкаОсвобождена

СтрокаВторая строкаОсвобождена

 

. Пpимеp программы с конструкторами и деструкторами

 

Продолжим выполнение задания из примера предыдущей главы для объектов класса "Комплексные числа" в части программирования конструкторов и деструкторов:

 

/*********************/

/* Constructors & */

/* Destructors of */

/* class Complex */

/*********************/

/* v.25.12.2002 */

#include "iostream.h" // Для cin, cout см.последующие главы

class Complex {

float Re; // Действительная иIm; // мнимая части числа

public:

Complex ( );( int, int );

~Complex ( );

// Функции арифметики

void Put ( ); // Функция ввода

};

void Complex::Put ( ) // Вывод на экран

{<< "Действительная часть числа: " << Re;<< "\nМнимая часть числа: " << Im;

}::Complex(int R, int I)

{= R; Im = I;

}::Complex( )

{= Im = 0;

}::~Complex( )

{= 0; Im = 0;

}main( )

{

{

Complex a,b; // Определение объектов a,b

Complex c(12,24); // Определение объекта c.Put( ), b.Put( ),c.Put ( ); // Вывод на экран

}

}

 

Заключение

 

Конструкторы и деструкторы представляют собой специальные функции класса, которые программа автоматически вызывает при создании или уничтожении объекта. Большинство программ используют конструктор для инициализации элементов данных класса. Простые программы, создаваемые сейчас вами, вероятно, не потребуют использования деструктора. Другими словами, вы можете переопределить символ плюс таким образом, что он будет добавлять содержимое одной строки к другой. Как вы уже знаете, тип (например, char, float и int) определяет набор значений, которые может хранить переменная, и набор операций, которые ваши программы могут выполнять над этой переменной. Когда вы определяете класс, вы по существу определяете тип. C++ позволяет вам указать, как ведут себя операторы с данным типом. До изучения урока 24 убедитесь, что освоили следующие основные концепции:

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

Конструктор не имеет возвращаемого значения, но вы не указываете ему тип void. Вместо этого вы просто не указываете возвращаемое значение вообще.

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

Деструктор представляет собой специальную функцию, которую ваша программа вызывает автоматически каждый раз при уничтожении объекта. Деструктор имеет такое же имя, как и класс объекта, но его имя предваряется символом тильды (~).

 

Список литературы

 

. Джарод Холингвэрт, Дэн Баттерфилд, Боб Сворт, Джэйми Оллсоп C++Builder 5. Руководство разработчика.

. Borland C++ Builder 5. Энциклопедия программиста. Калверт Ч., Рейсдорф К., "ДиаСофт" - 2001, 944 стр.

3.

. В.В. Подбельский. Язык C++: Учебное пособие. - Москва: Финансы и статистика, 1995. 560с.

. Ирэ Пол. Объектно-ориентированное программирование с использованием C++: Пер. с англ. - Киев: НИИПФ ДиаСофт Лтд, 1995. 480с.

. Т. Фейсон. Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.