В классах всегда есть специальные функции - конструкторы <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г.