Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Инициализация объекта порожденного класса





Для инициализации порожденных классов, также как и для обычных классов используются конструкторы. Поскольку конструкторы не наследуются, то при создании производного класса наследуемые им данные-члены должны инициализироваться конструктором базового класса. Конструктор базового класса вызывается автоматически и выполняется до конструктора производного класса. Параметры конструктора базового класса указываются в определении конструктора производного класса. Таким образом, происходит передача аргументов от конструктора производного класса конструктору базового класса.

Пример.

Рассмотрим конструктор класса student.

// конструктор без параметров, обнуляющий данные

class student

{

char FIO[20]; // ФИО студента

char gr[10]; // Группа студента

float reit; // Рейтинг студента

public:

student ()

{

FIO=””;

gr=””;

reit=0;

}

// конструктор с тремя параметрами

student (char *initFIO, char *initGr, float initReit)

{

strcpy(FIO, initFIO);

strcpy(gr, initGr);

reit=initReit;

}

};

В производном классе magistr будем инициализировать только специальность и номер телефона. Так как при инициализации объекта производного класса требуется вызвать конструктор базового класса, то конструктор производного класса будет иметь не два, а пять параметров.

Пример.

class magistr: public student

{

char spec[30];

int tel;

public:

magistr ()

{

spec=””;

tel=0;

}

// конструктор с тремя параметрами

magistr (char *initFIO, char *initGr, float initReit, char *initSpec, int initTel): student(initFIO, initGr, initReit)

{

strcpy(spec, initSpec);

tel=initTel;

}

};

Инициализация объекта производного класса происходит в следующем порядке:

- выполняется конструктор базового класса;

- если производный класс содержит объекты других классов, то инициализируются они;

- выполняется конструктор порожденного класса.

Таким образом, объект производного класса содержит в качестве подобъекта объект базового класса.

Уничтожаются объекты в обратном порядке: сначала производный, потом его компоненты-объекты, а потом базовый объект.

Date: 2016-05-13; view: 577; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию