Изучение возможности инициализации объектов класса с помощью конструкторов и уничтожение их с помощью деструкторов
1. Краткие теоретические сведения
При создании объектов одной из наиболее широко используемых операций является инициализация элементов данных объекта. Единственным способом, с помощью которого вы можете обратиться к частным элементам данных, является использование функций класса. Чтобы упростить процесс инициализации элементов данных класса, C++ использует специальную функцию, называемую конструктором, которая запускается для каждого создаваемого вами объекта. Подобным образом C++ обеспечивает функцию, называемую деструктором, которая запускается при уничтожении объекта. Основными концепциями конструктора и деструктора являются:
Конструктор представляет собой метод класса, который облегчает инициализацию элементов данных класса.
Конструктор имеет такое же имя, как и класс.
Конструктор не имеет возвращаемого значения.
Каждый раз, когда программа создает переменную класса, C++ вызывает конструктор класса, если конструктор существует.
Многие объекты могут распределять память для хранения информации; когда вы уничтожаете такой объект, C++ будет вызывать специальный деструктор, который может освобождать эту память, очищая ее после объекта.
Деструктор имеет такое же имя, как и класс, за исключением того, что вы должны предварять его имя символом тильды (~).
Деструктор не имеет возвращаемого значения.
Представьте конструктор как функцию, которая помогает строить (конструировать) объект. Подобно этому, деструктор представляет собой функцию, которая помогает уничтожать объект. Деструктор обычно используется, если при уничтожении объекта нужно освободить память, которую занимал объект.
Создание простого конструктора
Конструктор представляет собой метод класса, который имеет такое же имя, как и класс. Например, если вы используете класс с именем employee, конструктор также будет иметь имя employee. Конструктор не возвращает никакого значения, несмотря на то, что он не объявляется как void.
class employee
{
public:
employee(char *, long, float); //Конструктор
void show_employee(void);
int change_salary(float);
long get_id(void);
private:
char name [64];
long employee_id;
float salary;
};
employee::employee(char *name, long employee_id, float salary)
{
strcpy(employee::name, name) ;
employee::employee_id = employee_id;
if (salary
Закажите подобную или любую другую работу недорого
Предложения (0)
Служба поддержки
Возникли вопросы? Появились проблемы с автором? Не стесняйтесь, мы поможем!
Заполните форму и узнайте цену
Обратная связь
Загрузка...
Предупреждение
Не сообщайте контакты без крайней необходимости. Ни в коем случае не совершайте прямые переводы денежных средств вне биржи "Пишем24". Общение и заказы за пределами "Пишем24" несут высокий риск мошенничества. А внутри "Пишем24" - проходят гладко и безопасно. В случае первого обмена контактами от администрации выдается предупреждение. В случае второго обмена контактами аккаунт пользователя блокируется.