Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Рощин 25
Петров -end
Итак, конструктор вызывался автоматически дважды при создании объекта по имени и с помощью указателя.
Деструктор вызывался только один раз. Для объекта m2 деструктор не вызывался, т.к. мы выделили память “вручную” и так и не вернули ее системе, т.е. система не фиксирует уничтожение этого объекта при завершении программы.
Если перед getch() вставить строку
Delete (m2);
то результат будет:
Петров -begin
Рощин - begin
Петров 34
Рощин 25
Рощин -end
Петров -end
Причем при выводе, как первого, так и второго результата программа останавливается на вызове getch(), выводятся все строки результатов, кроме последней строки, после нажатия клавиши выводится и последняя строка.
Назначение конструктора инициализировать данные, однако данные могут приобретать значения и другим способом с помощью компонентных функций SetN() и SetA().
Конструктор мог бы инициализировать только одно данное объекта и выглядеть, напр., так
Men (char*n){ name =n;}
А возраст определялся бы каким-то другим способом.
Еще примерыконструктора с параметрами:
#include <iostream.h>
struct book {
char* name;
Float price;
book (char* newn, float newpr)
{ name=newn; price=newpr;};
};
Дата публикования: 2014-11-28; Прочитано: 237 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!