69708

Перевантаження конструкторів

Лекция

Информатика, кибернетика и программирование

Для перевантаження конструктора існують три причини: гнучкість, можливість створення ініціалізованих (не ініціалізованих) об’єктів і конструкторів копіювання. Досить часто об’єкти класу можна створити декількома способами.

Украинкский

2014-10-09

27.5 KB

0 чел.

Тема 8: Перевантаження конструкторів

Конструктори можна перенавантажувати. Фактично їх-то і перенавантажують частіше за все. Для перевантаження конструктора існують три причини: гнучкість, можливість створення ініціалізованих (не ініціалізованих) об'єктів і конструкторів копіювання. Досить часто об'єкти класу можна створити декількома способами. Для кожного з цих способів можна визначити окремий варіант перевантаженого конструктора. Ці варіанти вичерпують всі можливості створити об'єкт — при спробі зробити це непередбаченим способом компілятор не знайде відповідного конструктора і видасть повідомлення про помилку.

Перевантажені конструктори набагато підвищують гнучкість класу. Вони дозволяють користувачу вибирати оптимальний спосіб створення об'єкту.Приклад програми, яка створює клас date для зберігання календарної дати. Туту конструктор перевантажений двічі.

#include <iostream>

#include <cstdio>

using namespace std;

class date

{

int day, month, year;

public:

date(char *d);

date(int m, int d, int у);

void show_date();

};

// Ініціалізація рядком.

date::date(char *d)

{

sscanf(d, "%d%*c%d%*c%d" &month &day &year);

}

date::date(int m, int d, int у)

{

day = d;

month = m;

year = у;

}

void date::show_date() {

cout << month << "/" << day;

cout << "/" << year << "\n";

}

int main()

{

date ob1(12, 4, 2001), ob2("10/22/2001");

ob1.show_date();

ob2.show_date() ;

return 0;

}

В цій програмі об'єкт класу date можна ініціалізувати двома способами. Задавши місяць, день і рік у вигляді трьох цілих чисел або у вигляді рядка mm/dd/yyyy. Обидва способи застосовуються досить часто тому має сенс передбачити два різні конструктори для створення об'єктів класу date.

Цей приклад ілюструє основну ідею, яка лежить в основі перевантажених конструкторів: вони дозволяють вибирати спосіб створення об'єктів, який краще всіх відповідає конкретній ситуації. Наприклад, користувач може ввести дату у вигляді массива s. Цей рядок можна відразу використовувати для створення об'єкту класу date. Для цього абсолютно не вимагається перетворювати її в інший вигляд. Проте, якби конструктор date() би не був перевантажений, рядок довелося б розбити на три цілі числа.

int main()

{

char s[80];

cout << "Введіть нову дату: ";

сіn >> s;

date d(s);

d.show_date();

return 0 ;

}

В іншій ситуації користувачу зручніше ініціалізувати об'єкт класу date трьома цілими числами. Наприклад, якщо дата є результатом якихось обчислень, більш природньо створювати об'єкт класу date за допомогою конструктора date (int, int, int). Отже, у кожному конкретному випадку існує оптимальний варіант. Перевантажений конструктор забезпечує необхідну гнучкість класу, особливо необхідну при створенні бібліотек.


 

А также другие работы, которые могут Вас заинтересовать

33136. Методика проведения занятий классического танца 21 KB
  Приступая к занятиям необходимо объяснить: как держаться за станок как поворачиваться для опоры на другую руку объяснить позиции рук и ног особое внимание уделить постановке всех частей тела и корпуса. Необходимо стремиться к тому чтобы выворотность развивалась от тазобедренного сустава до ступни что дает: большой размах движения высокий подъем ноги и свободное вращение. Основные навыки выворотности развиваются при разучивании позиций ног их точного выполнения.
33137. Календарно-тематический план по дисциплине МЕТОДИКА РАБОТЫ С ДЕТСКИМ ХОРЕОГРАФИЧЕСКИМ КОЛЛЕКТИВОМ 106.5 KB
  1 Методика проведения занятий в детском танцевальном коллективе 1 Совершенствования ЗУН Видео занятия в ДТК Составить развернутый конспект на заданную тему 5 Методика разучивания элементов классического танца. Методика разучивания plie. 1 Совершенствования ЗУН Алгоритм разучивания элемента Составить комбинацию и разучить с 2 учащимися Классический танец 6 Методика разучивания bttement tendu. 1 Совершенствования ЗУН Алгоритм разучивания элемента Составить комбинацию и разучить с 2 учащимися Классический танец 7 Методика разучивания...
33139. Постановка танца 24 KB
  Перед тем как приступить к постановке того или иного танца нужно хорошо усвоить его содержание и характер а также в совершенстве изучить все его движения. Приступая к разучиванию народного танца руководитель кратко рассказывает его содержание предлагает прослушать музыку после этого можно приступать к постановке. Когда все движения танца изучены можно приступать к разучиванию фигур и построению.
33140. Разбор танца по записи 25 KB
  Работа над постановкой танца по записи значительно обогащает руководителя. Он знакомится с опытом ведущих мастеров расширяет знания и возиожности применения выразительных средств хореографии в создании танца. Каждая запись танца состоит из 4х частей: Даются основные сведения о танце: название образное описание содержания особенности танца композиция манера исполнения число и состав исполнителей даются рекомендации о возможных изменениях в составе указывается автор музыки как ее нужно исполнять приведен музыкальный размер.
33141. Создание танца 23.5 KB
  Приступая к созданию того или иного танца руководитель должен прежде всего выбрать интересный сюжет. Выбрав сюжет и определенный характер танца подбирают к нему музыкальное сопровождение. Бывают случаи когда неудачно подобранная музыка снижает качество хорошо задуманного танца.
33142. Начальные этапы работы балетмейстера над созданием хореографической постановки 23.5 KB
  Создание сценического народного танца начинается с замысла. Из этих образов рождается порой содержание танца. Балетмейстер возьмет за основу проявление в жизни этих возвышенных качеств человека содержание и характер взаимоотношений между людьми и отразит с помощью поэтического языка сценического танца. Иной раз это своеобразие манеры исполнения танца выражающий характер взаимоотношений между танцующими или композиционный прием который образно раскрывает содержание постановки.
33143. Основные выразительные средства хореографического искусства 34 KB
  Особенности исполнительства танца в том что содержание любого эмоционального состояния муз. Создание танца передается с помощью богатейшей палитры выразительных средств. К выразительным средствам танцевального искусства относятся: лексика танца композиционный рисунок Хореографическая лексика язык танца его основные движения положения тела различные жесты. Лексика бывает: основная танцевальная действенная подражательная ассоциативная Основная хореографическая лексика используется в постановке танцевального номера в...
33144. Подбор репертуара в детском танцевальном коллективе 26 KB
  Основой репертуара ДТК являются народные танцы. Хорошо усеваемые школьниками простотой рисунка жизнерадостностью веселой музыкой чешские танцы соответствуют требованиям репертуар ДТК. Польские танцы краковяк мазурка сложные по своим движениям их можно использовать с детьми старшего возраста. Танцы должны напоминать увлекательную игру.