Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Упражнения. 1. Объявите класс Animal (Животное), который содержит переменную-член, являющуюся объектом класса String.
1. Объявите класс Animal (Животное), который содержит переменную-член, являющуюся объектом класса String. class Animal: { private: String itsName; }; 2. Опишите класс BoundedArray, являющийся массивом. class boundedArray: public Array { //... } 3. Опишите класс Set, выполняемый в пределах массива BoundedArray. class Set: private Array { //... } 4. Измените листинг 15.1 таким образом, чтобы класс String включал перегруженный оператор вывода (> >). 1: #include < iostream.h> 2: #include < string.h> 3: 4: class String 5: { 6: public: 7: // конструкторы 8: String(); 9: String(const char *const): 10: String(const String &); 11: ~String(); 12: 13: // перегруженные операторы 14: char & operator[](int offset); 15: char operator[](int offset) const: 16: String operator+(const String&); 17: void operator+=(const String&); 18: String & operator= (const String &); 19: friend ostream& operator< < 20: (ostream& _theStream, String& theString); 21: friend ist.ream& operator> > 22: (istream& _theStream, String& theString); 23: // Общие функции доступа 24: int GetLen()const { return itsLen; } 25: const char * GetString() const { return itsString; } 26: // static int ConstructorCount: 27: 28: private: 29: String (int); // закрытый конструктор 30: char * itsString; 31: unsigned short itslen; 32: 33: }; 34: 35: ostream& operator< < (ostream& theStream, String& theStnng) 36: { 37: theStream < < theString.GetString(); 38: return theStream; 39: } 40: 41: istream& operator> > (istream& theStream, String& theString) 42: { 43: theStream > > theString.GetString(); 44: return theStream; 45: } 46: 47: int main() 48: { 49: StringtheString(" npHBeT, мир."); 50: cout < < theString; 51: return 0; 52: } 5. Жучки: что неправильно в этой программе? 1: #include < iostrearm.h> 2: 3: class Animal; 4: 5: void setValue(Animal&, int); 6: 7: 8: class Animal 9: { 10: public: 11: int GetWeight()const { return itsWeight; } 12: int GetAge() const { return itsAge; } 13: private: 14: int itsWeight; 15: int itsAge; 16: }; 17: 18: void setValue(Animal& theAnimal, int theWeight) 19: { 20: friend class Animal; 21: theAnimalitsWeight = theWeight; 22: } 23: 24: int main() 25: { 26: Animal peppy; 27: setValue(peppy, 5): 28: return 0; 29: } Нельзя помещать объявление friend в функцию. Нужно объявить функцию другом в объявлении класса. 6. Исправьте листинг, приведенный в упражнении 5, и откомпилируйте его. 1: #include < iostream.h> 2: 3: class Animal; 4: 5: void setValue(Animal&, int); 6: 7: 8: class Animal 9: { 10: public: 11: friend void setValue(Animal&, int); 12: int GetWeight()const { return itsWeight; } 13: int GetAge() const { return itsAge; } 14: private: 15: int itsWeight; 16: int itsAge; 17: }; 18: 19: void setValue(Animal& theAnimal, int theWeight) 20: { 21: theAnimal.itsWeight = theWeight; 22: } 23: 24: int main() 25: { 26: Animal peppy; 27: setValue(peppy, 5); 28: return 0; 29: } 7. Жучки: что неправильно в этой программе? 1: #include < iostream.h> 2: 3: class Animal; 4: 5: void setValue(Animal&, int): 6: void setValue(Animal&, int.int); 7: 8: class Animal 9: { 10: friend void setValue(Animal&, int): 11: private: 12: mt itsWeight; 13: int itsAge; 14: }; 15: 16: void setValue(Animal& theAnimal, int theWeight) 17: { 18: theAnimal.itsWeight = theWeight; 19: } 20: 21: 22: void setValue(Animal& theAnimal, int theWeight, int theAge) 23: { 24: theAnimal.itsWeight = theWeight: 25: theAnimal.itsAge = theAge; 26: } 27: 28: int main() 29: { 30: Animal peppy; 31: setValue(peppy, 5); 32: setValue(peppy, 7, 9); 33: return 0: 34: } Функиия setValue(Animal&, int) была объявлена дружественной, но перегруженная функция setValue(Animal&, int, int) не была объявленадружественной. 8. Исправьте листинг, приведенный в упражнении 7, и откомпилируйте его. 1: #include < iostream.h> 2: 3: class Animal; 4: 5: void setValue(Animal&, int); 6: void setValue(Animal&, int.int); 7: 8: class Animal 9: { 10: friend void setValue(Animal&, int); 11: friend void setValue(Animal&, int.int): // изменение! 12: private: 13: int itsWeight; 14: int itsAge; 15: }; 16: 17: void setValue(Animal& theAnimal, int theWeight) 18: { 19: theAnimal.itsWeight = theWeight; 20: } 21: 22: 23: void setValue(Animal& theAnimal, int theWeight, int theAge) 24: { 25: theAnimal.itsWeight = theWeight; 26: theAnimal.itsAge = theAge; 27: } 28: 29: int main() 30: { 31: Animal peppy; 32: setValue(peppy.5); 33: setValue(peppy, 7, 9); 34: return 0; 35: }
|