Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Листинг 6.4. Использование конструкторов и деструкторов.
1: // Пример объявления конструктора и 2: // деструктора в классе Cat 3: 4: #include < iostream.h> // для объекта cout 5: 6: class Cat // начало объявления класса 7: { 8: public: // начало открытого раздела 9: Cat(int initialAge); // конструктор 10: ~Cat(); //деструктор 11: int GetAge(); // метод доступа 12: void SetAge(int age); // метод доступа 13: void Meow(); 14: private: // начало закрытого раздела 15: int itsAge; // переменная-член 16: }; 17: 18: // конструктор класса Cat 19: Cat:: Cat(int initialAge) 20: { 21: itsAge = initialAge; 22: } 23: 24: Cat:: ~Cat() // деструктор, не выполняющий действий 25: { 26: } 27: 28: // GetAge, открытая функция обеспечения доступа, 29: // возвращает значение переменной-члена itsAge 30: int Cat:: GetAge() 31: { 32: return itsAge; 33: } 34: 35: // Определение SetAge, открытой 36: // функции обеспечения доступа 37: 38: voidCat:: SetAge(int age) 39: { 40: // устанавливаем переменную-член itsAge равной 41: // значению, переданному параметром age 42: itsAge = age; 43: } 44: 45: // Определение метода Meow 46: // возвращает void 47: // параметров нет 48: // используется для вывода на экран текста " Meow" 49: void Cat:: Meow() 50: { 51: cout < < " Meow.\n"; 52: } 53: 54: // Создаем виртуальную кошку, устанавливаем ее возраст, разрешаем 55: // ей мяукнуть, сообщаем ее возраст, затем снова " мяукаем" и изменяем возраст кошки. 56: int main() 57: { 58: Cat Frisky(5); 59: Frisky.Meow(); 60: cout < < " Frisky is а cat who is "; 61: cout < < Frisky.QetAge() < < " years old.\n"; 62: Frisky.Meow(); 63: Frisky.SetAge(7); 64; cout < < " Now Frisky is "; 65: cout < < Frisky. GeMje() < < " years old.\n"; 66: return 0; 67: }
Результат: Meow. Frisky is a cat who is 5 years old. Meow. Now Frisky is 7 years old.
Анализ: Листинг 6.4 подобен листингу б.З за исключением того, что в строке 9 добавляется конструктор, который принимает в качестве параметра целочисленное значение. В строке 10 объявляется деструктор, который не принимает никаких параметров. Помните, что деструкторы никогда не принимают параметров; кроме того, ни конструкторы, ни деструкторы не возвращают никаких значений — даже значения типа void. В строках 19—22 определяется выполнение конструктора, аналогичное выполнению функции доступа SetAge(), которая также не возвращает никакого значения. В строках 24—26 определяется деструктор ~Cat(). Эта функция не выполняет никаких действий, но коль вы объявляете ее в классе, нужно обязательно включить и ее определение. В строке 58 содержится определение объекта класса Cat с именем Frisky. В конструктор объекта Frisky передается значение 5. В данном случае нет никакой необходимости вызывать функцию-член SetAge(), поскольку объект Frisky создавался с использованием значения 5, присвоенного переменной-члену itsAge, как показано в строке 61. В строке 63 переменной itsAge объекта Frisky присваивается значение 7, на этот раз с помощью функции SetAge(). Новое значение выводится на экран в строке 65.
Рекомендуется: Используйте конструкторы для инициализации объектов.
He рекомендуется: Не пытайтесь с помощью конструктора или деструктора возвращать какое бы то ни было значение. Не передавайте деструкторам параметры.
|