Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Листинг 10.1. Перегрузка функций-членов
1: //Листинг 10.1. Перегрузка функций-членов 2: #include < iostream.h> 3: 4: int 5: // Обьявление класса Rectangle 6: class Rectangle 7: { 8: public: 9: // конструкторы 10: Rectangle(int width, int height); 11: ~Rectangle(){ } 12: 13: // перегрузка функции-члена класса DrawShape 14: void OrawShape() const; 15: void DrawShape(int aWidth, int aHeight) const; 16: 17: private: 18: int itsWidth; 19: int itsHeight; 20: }; 21: 22: // Применение конструктора 23: Rectangle:: Rectangle(int width, int height) 24: { 25: itsWidth = width; 26: itsHeight = height; 27: } 28: 29: 30: // Перегруженная функция DrawShape - вариант без передачи данных 31: // Создание прямоугольника по значениям, заданным по умолчанию 32: void Rectangle:: DrawShape() const 33: { 34: DrawShape(itsWidth, itsHeight); 35: } 36: 37: 38: // Перегруженная функция DrawShape - передача двух значений 39: // Создание прямоугольника по значениям, переданным с параметрами 40: void Rectangle:; DrawShape(int width, int height) const 41: { 42: for (int i = 0; i< height; i++) 43: { 44: for (int j = 0; j< width; j++) 45: { 46: cout < < " < < "; 47: } 48: cout < < " \n"; 49: } 50: } 51: 52: // Выполняемая программа, демонстрирующая использование перегруженных функций 53: int main() 54: { 55: // создание прямоугольника с размерами 30 и 5 56: Rectangle theRect(30, 5); 57: cout < < " DrawShape(): \n"; 58: theRect.DrawShape(); 59: cout < < " \nDrawShape(40, 2): \n"; 60: theRect.DrawShape(40, 2); 61: return 0; 62: }
Результат: DrawShape(): ****************************** ****************************** ****************************** ****************************** ****************************** DrawShape(40, 2): **************************************** ****************************************
Анализ: Листинг 10.1 представляет собой усеченную версию проекта, рассмотренного в главе подведения итогов за первую неделю. Чтобы сократить размер программы, был удален блок контроля за соответствием значений заданным типам. Основной код был упрощен до простой выполняемой программы без показа пользовательского меню. Сейчас для нас важны строки 14 и 15, где происходит перегрузка функции DrawShape(). Использование перегруженных вариантов этой функции показано далее, в строках с 30 по 50. Обратите внимание, что версия функции DrawShape() без параметров обращается к варианту функции, содержащей два параметра, и передает в нее текущие значения переменных-членов. При программировании всегда следует избегать дублирования одинаковых программных кодов. В противном случае придется держать в памяти все созданные копии функций, чтобы при изменении программного кода в одной из них внести соответствующие изменения во все копии. В строках программы с 52 по 62 создается прямоугольный объект и вызывается функция DrawShape(). В первый раз в функцию не передаются параметры, а во второй раз передается два значения типа unsigned short integer. Компилятор выбирает правильное объявление функции по количеству и типу заданных параметров. Дополнительно можно задать в этой же программе еще одно объявление функции DrawShape(), в параметрах которой будет одно значение размера и переменная перечисления, позволяющая пользователю указать, что обозначает данный размер — ширину или длину прямоугольника.
|