Объектно-ориентированное программирование на C++. Андрианова А.А - 21 стр.

UptoLike

Объектно-ориентированное программирование на С++
имеют значения по умолчанию, вызов функции также может
интерпретироваться неоднозначно. Например, имеются функции:
void f(int a) {. . .}
void f(int a, int b = 10) {. . .}
При следующем вызове
int n = 19;
f(n);
возникает неоднозначность, поскольку такой вызов может
трактоваться и как вызов первой функции, и как вызов второй
функции с параметром по умолчанию. Таким образом, первую
функцию вызвать нельзя (возникнет ошибка), а вторую можно
только при указании обоих параметров.
Домашнее задание
1. Напишите перегруженные функции, реализующие операции с
векторами:
умножения вектора на число;
скалярного умножения двух векторов;
умножения числа на вектор.
2. Определите структуру «Время», содержащую поля для хранения
часов, минут, секунд. Напишите перегруженные функции,
реализующие операцию добавления к имеющемуся времени:
заданного количества секунд;
заданного количества минут и секунд;
заданного количества часов, минут и секунд.
3. Определите структуру «Дата», содержащую поля для хранения
года, месяца, дня. Напишите перегруженные функции,
реализующие операцию добавления к имеющейся дате:
заданного количества дней;
заданного количества месяцев и дней;
заданного количества лет, месяцев и дней.
4. Напишите перегруженные функции, осуществляющие
преобразование числа в символьную строку:
Для целых чисел;
21
                           Объектно-ориентированное программирование на С++
      имеют значения по умолчанию, вызов функции также может
      интерпретироваться неоднозначно. Например, имеются функции:
         void f(int a) {.    .    .}
         void f(int a, int b = 10) {. .         .}

    При следующем вызове

         int n = 19;
         f(n);

    возникает неоднозначность, поскольку такой вызов может
    трактоваться и как вызов первой функции, и как вызов второй
    функции с параметром по умолчанию. Таким образом, первую
    функцию вызвать нельзя (возникнет ошибка), а вторую – можно
    только при указании обоих параметров.


                                                Домашнее задание

    1. Напишите перегруженные функции, реализующие операции с
       векторами:
•           умножения вектора на число;
•           скалярного умножения двух векторов;
•           умножения числа на вектор.
    2. Определите структуру «Время», содержащую поля для хранения
       часов, минут, секунд. Напишите перегруженные функции,
       реализующие операцию добавления к имеющемуся времени:
            • заданного количества секунд;
            • заданного количества минут и секунд;
            • заданного количества часов, минут и секунд.
    3. Определите структуру «Дата», содержащую поля для хранения
       года, месяца, дня. Напишите перегруженные функции,
       реализующие операцию добавления к имеющейся дате:
            • заданного количества дней;
            • заданного количества месяцев и дней;
            • заданного количества лет, месяцев и дней.
    4. Напишите     перегруженные       функции,     осуществляющие
       преобразование числа в символьную строку:
               •   Для целых чисел;
                                                                         21