![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Абстрактные классы.
Очень часто виртуальная функция, объявленная в базовом классе, никогда не используется в нём, то есть она представляется в виде пустой функции ({ }). Версия виртуальной функции, которая должна быть определена, но никогда не будет использоваться, должна быть объявлена как чисто виртуальная: Virtual тип имя_функции (список параметров) =0; При выполнении в программе число виртуальной функции генерируется сообщение об ошибке и программа аварийно завершается (при работе пустой функции этого не происходит). Класс с одной или большим количеством чисто виртуальных функций называется — абстрактным. Правила языка С++ запрещают использование таких классов, они могут использоваться только как базовые для создания других классов. Это происходит потому, что одна или несколько функций для объектов этого класса не имеют определения. Данная ситуация используется для обнаружения ошибок создания фиктивных объектов при помощи компилятора. Рекомендации: § Используйте абстрактные типы данных для создания для создания общего интерфейса для всех производных классов. § Обязательно замещайте в произвольных классах чистые виртуальные функции. § Объявляйте все функции, которые требуют замещения в произвольном классе как виртуальные. § Не пытайтесь создать объект абстрактного класса. Лекция № 11. Статические переменные. Шаблоны функций и классов. Связные списки. Статические переменные-члены и статические функции-члены. До этого момента предполагалось, что все данные находящиеся в классе должны принадлежать объектам класса, причём какое-либо данное должно было принадлежать конкретному объекту класса. Но иногда возникает необходимость в получении информации о накоплении данных программой. (например о количестве объектов класса). Эту задачу решают статистические переменные-члены. Эти переменные используются всеми объектами класса, то есть можно сказать, что они принадлежат классу, а не объекту класса. Их можно рассматривать как нечто среднее между глобальными переменными и переменными-членами. Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение #include< iostream.h> Class Cat { public: Cat(int age): itsAge(age){HayMenyCats++; } virtual ~Cat(){HayMenyCats--; } virtual int GetAge() {return itsAge; } virtual void SetAge(int age){itsAge=age; } Static int HayMenyCats; private: Int itsAge; }; int Cat:: HayMenyCats =0; Int main(void) { const int MaxCat=5; Int i; Cat *CatHouse[MaxCat]; for(i=0; i< MaxCat; i++) CatHouse[i]=new Cat(Maxcat-i); for(i=0; i< MaxCat; i++) { cout< < " сейчас у нас "; cout< < Cat:: HayMenyCats; cout< < " кота.\n"; cout< < " удалим кота, возраст которого "; cout< < CatHouse[i]-> GetAge()< < " года \n"; delete CatHouse[i]; CatHouse[i]=0; }
|