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

Нажмите для полного просмотра!
Конструкторы и деструкторы, слайд №1Конструкторы и деструкторы, слайд №2Конструкторы и деструкторы, слайд №3Конструкторы и деструкторы, слайд №4Конструкторы и деструкторы, слайд №5Конструкторы и деструкторы, слайд №6Конструкторы и деструкторы, слайд №7Конструкторы и деструкторы, слайд №8Конструкторы и деструкторы, слайд №9Конструкторы и деструкторы, слайд №10Конструкторы и деструкторы, слайд №11Конструкторы и деструкторы, слайд №12Конструкторы и деструкторы, слайд №13Конструкторы и деструкторы, слайд №14Конструкторы и деструкторы, слайд №15

Вы можете ознакомиться и скачать презентацию на тему Конструкторы и деструкторы. Доклад-сообщение содержит 15 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Конструкторы и деструкторы
Описание слайда:
Конструкторы и деструкторы

Слайд 2





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

Слайд 3





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

Слайд 4





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

Слайд 5





Конструктор без параметров
class church {
	char *name;
	char school;
	unsigned int count;
	float square;
public:
church (); // объявление конструктора
void show(void);
};
church :: church () // определение конструктора
{
	name = "по умолчанию";
	school = 'а';
	unsigned int _count = 0;
	float _square = 0;
}
Описание слайда:
Конструктор без параметров class church { char *name; char school; unsigned int count; float square; public: church (); // объявление конструктора void show(void); }; church :: church () // определение конструктора { name = "по умолчанию"; school = 'а'; unsigned int _count = 0; float _square = 0; }

Слайд 6





Конструкторы с одним параметром
#include <iostream>
using namespace std;
class myclass {
	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;
}
Описание слайда:
Конструкторы с одним параметром #include <iostream> using namespace std; class myclass { 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 <iostream>
using namespace std;
class myclass {
  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;
}
Описание слайда:
Конструкторы с параметрами #include <iostream> using namespace std; class myclass { 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 {
class church {
	char *name;
	char school;
	unsigned int count;
	float square;
public:
church (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<<name<<" "; cout<<school<<" "; cout<<count<<" "; cout<<square<<" ";
}
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();
}
Описание слайда:
class church { class church { char *name; char school; unsigned int count; float square; public: church (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<<name<<" "; cout<<school<<" "; cout<<count<<" "; cout<<square<<" "; } 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
Описание слайда:
Объявление деструктора Деструкторы по умолчанию являются открытыми При объявлении деструкторов действуют несколько правил: Не могут иметь аргументов Не могут иметь возвращаемого типа (включая void) Не могут возвращать значение с помощью оператора return Не могут объявляться как const, volatile или static. Однако их можно вызывать для уничтожения объектов, объявленных как const, volatile или static

Слайд 11





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

Слайд 12





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

Слайд 13





#include "iostream"
#include "iostream"
#include "stdlib.h"
using namespace std;
class Int {
	int x;
public:
	Int(int y=0){x=y;}
    ~Int(){
      cout << "Object was 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");
}
Описание слайда:
#include "iostream" #include "iostream" #include "stdlib.h" using namespace std; class Int { int x; public: Int(int y=0){x=y;} ~Int(){ cout << "Object was 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





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

Слайд 15





Задание на самостоятельную работу
Постановка задачи «Кошелек студента». Владелец кошелька может выполнить следующие действия с кошельком: добавить  деньги в кошелек, взять деньги, пересчитать, посмотреть, дать деньги в долг. Источниками пополнения кошелька могут быть родители, также это может быть зарплата или стипендия. 
Задание:
Добавить в разработанные классы задачи «Кошелек студента» необходимые конструкторы и деструкторы
Описание слайда:
Задание на самостоятельную работу Постановка задачи «Кошелек студента». Владелец кошелька может выполнить следующие действия с кошельком: добавить деньги в кошелек, взять деньги, пересчитать, посмотреть, дать деньги в долг. Источниками пополнения кошелька могут быть родители, также это может быть зарплата или стипендия. Задание: Добавить в разработанные классы задачи «Кошелек студента» необходимые конструкторы и деструкторы



Похожие презентации
Mypresentation.ru
Загрузить презентацию