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




В классах всегда есть специальные функции - конструкторы <https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)> и деструкторы <https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80>, которые могут быть объявлены явно или неявно.

Конструктор вызывается для инициализации объекта (соответствующего типа) при его создании, а деструктор - для уничтожения объекта. В частности, конструктор может быть вызван для выполнения преобразования к классовому типу.

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

Конструктор без параметров или конструктор, все параметры которого имеют аргументы по умолчанию, называется конструктором по умолчанию, нешаблонный конструктор с первым параметром-ссылкой на тот же класс (например, Array::Array(const Array&)) и остальными параметрами (если таковые есть), имеющими аргументы по умолчанию, - конструктором копирования, он вызывается при создании нового объекта, являющегося копией уже существующего объекта.

Если в классе нет явно объявленных конструкторов, класс имеет неявно объявленный конструктор без параметров, который конструирует подобъекты классов-родителей и инициализирует поля класса, вызывая для них конструкторы по умолчанию. Если в классе нет явно объявленных копирующих конструкторов, то класс имеет неявно объявленный копирующий конструктор, который выполняет прямое копирование всех объявленных полей объекта-источника в соответствующие поля объекта-приёмника с помощью соответствующих копирующих конструкторов. Если в классе нет явно объявленного деструктора, то класс имеет неявно объявленный деструктор.

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

 


 

2. Практическая часть

 

2.1. Задача 1

 

Составить программу поиска трехзначных чисел которые при делении на 47 дают в остатке 43, а при делении на 43 дают в остатке 47.

Текст программы:

 

#include <iostream>

#include <conio.h>

#include <ctime>

namespace std;

()

{i,j;(i=100; i<1000; i++)

{if ((i%47==43) or (i%43==47))<<i<<endl;

}

_getch();

}

 

Выходные данные:

 


 

 

Задача 2

 

Дано натуральное число. Определить номер цифры «8» в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько - должен быть определен номер самой левой из них.

Текст программы:

 

#include <iostream>

#include <conio.h>

#include <ctime>

#include <stdlib.h>

#include <cstring>

namespace std;

()

{a;j[25];dlina,i,bufer,k;=-1;=1;<< "Vvedite naturalnoe chislo:";>> a;(a<=0) cout<<"Chislo "<<a<<" ne podhodit pod uslovie zadachi"<<endl;(a>0)(a,j,10);= strlen(j)-1;(i=dlina;i!=-1;i--)

{(j[i]=='8')

{=k;

}=k+1;

}(bufer!= -1)<<bufer<<endl; cout<<"0"<<endl;

_getch();

}

 

Входные, выходные данные

 


 

 


 

Заключение

 

В процессе курсовой работы мной были изучены методы создания циклов for, предложений if, в результате чего приобретены практические навыки в этих областях. Для этого использовалась главная функция main, обеспечивающая всю необходимую и правильную работу программы.

наследование инкапсуляция константный функция


 

Список использованной литературы

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

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

3. Галерея «ПЕТРОПОЛЬ». Неформальное введение в C++ и TURBO VISION. 1992г.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: