Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Петров 34



Рощин 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...