Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Конструкторы и деструкторы

Содержание

КонструкторыКонструктор – особая функция, являющаяся членом класса и позволяющая инициализировать объекты в момент их созданияЭто означает, что конструктор автоматически вызывается в момент создания объекта, т.е. при его объявлении. При этом:при объявлении локальных объектов конструкторы вызываются каждый
Конструкторы и деструкторы КонструкторыКонструктор – особая функция, являющаяся членом класса и позволяющая инициализировать объекты в Объявление конструктораКак метод класса. Правила синтаксиса:Имя конструктора должно совпадать с именем классаВ Виды конструкторовКонструктор без параметровКонструктор с параметрами:конструктор с одним параметромконструктор с несколькими параметрами Конструктор без параметровclass church {	char *name;	char school;	unsigned int count;	float square;public:church (); // Конструкторы с одним параметром#include using namespace std;class myclass {	int a;public:	myclass (int i) Конструкторы с параметрами#include using namespace std;class myclass { int a; int b; class church {	char *name;	char school;	unsigned int count;	float square;public:church (char* _name = ДеструкторыДеструктор – антипод конструктора, который вызывается автоматически при разрушении объектаИмя деструктора совпадает Объявление деструктора Деструкторы по умолчанию являются открытымиПри объявлении деструкторов действуют несколько правил:Не Использование деструкторовДеструкторы вызываются, когда происходит одно из следующих событий:Объект, предоставленный с использованием ЗаданиеК классу Int, имитирующий стандартный тип int добавьте:Конструктор без параметра, инициализирующий поле #include Контрольные вопросыКак можно объявить конструктор?Как можно определить конструктор?Как можно вызвать конструктор?Как можно Задание на самостоятельную работуПостановка задачи «Кошелек студента». Владелец кошелька может выполнить следующие
Слайды презентации

Слайд 2 Конструкторы
Конструктор – особая функция, являющаяся членом класса и

КонструкторыКонструктор – особая функция, являющаяся членом класса и позволяющая инициализировать объекты

позволяющая инициализировать объекты в момент их создания
Это означает, что

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

Слайд 3 Объявление конструктора
Как метод класса.
Правила синтаксиса:
Имя конструктора должно

Объявление конструктораКак метод класса. Правила синтаксиса:Имя конструктора должно совпадать с именем

совпадать с именем класса
В объявлении конструктора не указывается тип

возвращаемого значения, так как они не могут возвращать значения
Определение конструктора
Внутри класса:
имя конструктора (параметры) { тело конструктора}
Вне класса:
имя класса :: имя конструктора (параметры) {тело конструктора}
Вызов конструктора
В явном виде не вызывается, автоматически запускается при объявлении объекта

Слайд 4 Виды конструкторов
Конструктор без параметров
Конструктор с параметрами:
конструктор с одним

Виды конструкторовКонструктор без параметровКонструктор с параметрами:конструктор с одним параметромконструктор с несколькими параметрами

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


Слайд 5 Конструктор без параметров
class church {
char *name;
char school;
unsigned int

Конструктор без параметровclass church {	char *name;	char school;	unsigned int count;	float square;public:church ();

count;
float square;
public:
church (); // объявление конструктора
void show(void);
};
church :: church

() // определение конструктора
{
name = "по умолчанию";
school = 'а';
unsigned int _count = 0;
float _square = 0;
}

church obj; // автоматический вызов запуск конструктора

Конструктор автоматически вызывается при объявлении (создании) объекта
То есть объявление объекта в С++ - это не пассивная запись оператора, а активный процесс


Слайд 6 Конструкторы с одним параметром
#include
using namespace std;
class myclass

Конструкторы с одним параметром#include using namespace std;class myclass {	int a;public:	myclass (int

{
int a;
public:
myclass (int i) { a = i; }
int

geta () { return a; }
};
int main()
{
myclass x = 3; // передает параметру i значение 3
cout << x.geta(); // выводит на экран 3
return 0;
}

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


Слайд 7 Конструкторы с параметрами
#include
using namespace std;
class myclass {

Конструкторы с параметрами#include using namespace std;class myclass { int a; int

int a;
int b;
public:
myclass (int i =0

, int j=0) {
a = i; b = j;
}
void show() {
cout << a << " " << b << "\n"; };
int main(){
myclass x; // без аргументов
cout << " object X \n";
x.show();
myclass y (3,5);
// или myclass y = myclass (3,5);
cout << " object Y \n";
y.show();
return 0;
}

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


Слайд 8 class church {
char *name;
char school;
unsigned int count;
float square;
public:
church

class church {	char *name;	char school;	unsigned int count;	float square;public:church (char* _name =

(char* _name = "по умолчанию", char _school = 'а',

unsigned int _count = 0, float _square = 0.); //конструктор
~church ();//прототип деструктора
void show(void);
};//конец класса
church::~church ()// определение деструктора
{
cout<<"\n работает деструктор - объект уничтожен\n";
}
church::church (char* _name, char _school, unsigned int _count, float _square)
{
cout << "работает конструктор\n";
name=new char[]; strcpy(name, _name);
school = _school;
count = _count;
square = _square;
}
void church::show(void)
{
cout<}

int main() {
church obj; cout<<"результат работы конструктора по умолчанию: \n";
obj.show();
cout<<"\n";
obj.~church();

cout<<"\n результат работы конструктора с указанием параметров: \n";
church obj1("name", 'r', 10, 10.657);
obj1.show();
obj1.~church();
}


Слайд 9 Деструкторы
Деструктор – антипод конструктора, который вызывается автоматически при

ДеструкторыДеструктор – антипод конструктора, который вызывается автоматически при разрушении объектаИмя деструктора

разрушении объекта
Имя деструктора совпадает с именем конструктора, но перед

ним ставится знак  (тильда)

Слайд 10 Объявление деструктора
Деструкторы по умолчанию являются открытыми
При объявлении

Объявление деструктора Деструкторы по умолчанию являются открытымиПри объявлении деструкторов действуют несколько

деструкторов действуют несколько правил:
Не могут иметь аргументов
Не могут иметь

возвращаемого типа (включая void)
Не могут возвращать значение с помощью оператора return
Не могут объявляться как const, volatile или static. Однако их можно вызывать для уничтожения объектов, объявленных как const, volatile или static

Слайд 11 Использование деструкторов
Деструкторы вызываются, когда происходит одно из следующих

Использование деструкторовДеструкторы вызываются, когда происходит одно из следующих событий:Объект, предоставленный с

событий:
Объект, предоставленный с использованием оператора new, можно явно освободить с

использованием оператора delete
Локальный (автоматический) объект с областью видимости "блок" выходит за пределы области видимости
Время существования временного объекта заканчивается
Программа заканчивается, глобальные или статические объекты продолжают существовать
Деструктор можно явно вызывать
имя объекта. ~ имя деструктора ()
Ограничения на использование деструкторов:
Невозможно взять адрес деструктора
Производные классы не наследуют деструкторы базового класса


Слайд 12 Задание
К классу Int, имитирующий стандартный тип int добавьте:
Конструктор

ЗаданиеК классу Int, имитирующий стандартный тип int добавьте:Конструктор без параметра, инициализирующий

без параметра, инициализирующий поле 0
Конструктор с параметром, инициализирующий поле

целым числом или 0 по умолчанию
Деструктор
В программе должно быть создано три объекта класса Int.
Первый и третий объекты должны быть инициализированы конструктором без параметра
Второй должен быть инициализирован конструктором целым числом, введенным пользователем с клавиатуры
Сложите два инициализированных объекта и присвойте результат третьему, а затем отобразите результат на экране
Выполните явный вызов деструктора

Слайд 13 #include "iostream"
#include "stdlib.h"
using namespace std;
class Int {
int x;
public:
Int(int

#include

y=0){x=y;}
~Int(){
cout

destructed" << "\n";};
void setX(int a);
void show();
int summa(Int obj1, Int obj2) {
return obj1.x+obj2.x;}
};

void Int::show(){cout << x << "\n";};
void Int::setX(int a){x=a;}

void main()
{
int a;
cout << "enter value Object2" << " ";
cin >> a;

Int Ob1, Ob2(a), Ob3; // инициализация первым конструктором
Ob1.show();
Ob2.show();
Ob3.show();

Ob3.setX(Ob3.summa(Ob1,Ob2));
Ob3.show();
Ob3.~Int();
system("pause");
}

Слайд 14 Контрольные вопросы
Как можно объявить конструктор?
Как можно определить конструктор?
Как

Контрольные вопросыКак можно объявить конструктор?Как можно определить конструктор?Как можно вызвать конструктор?Как

можно вызвать конструктор?
Как можно объявить деструктор?
Как можно определить деструктор?
Как

можно вызвать деструктор?
Где в приведенном примере срабатывает конструктор и какой конкретно оператор конструктора.
Объясните, какие события в приведенном примере приводят к вызову деструктора.


  • Имя файла: konstruktory-i-destruktory.pptx
  • Количество просмотров: 85
  • Количество скачиваний: 1