|
Программирование >> Дополнительные возможности наследования
Базовые классы Базовые классы расширяют встроенные средства языка С++, что способствует решению сложных проблем, которые ставит перед программистами реальная жизнь. Сегодня вы узнаете: Что представляют собой классы и объекты Как определить новый класс и создать объекты этого класса Что представляют собой функции-члены и переменные-члены Что такое конструктор и как его использовать Создание новых топов Вы уже познакомились с типами переменных, включая беззнаковые целые и символы. Тип переменной несет в себе немало информации. Например, если объявить переменные Height и Width как беззнаковые короткие целые (unsigned short int), то каждая из них сможет хранить целое число в диапазоне 0-65 535, занимая при этом только два байта. Если же вы попытаетесь присвоить такой переменной значение, отличное от беззнакового целого числа, то получите сообшение об ошибке. Это значит, что с помощью такой переменной вы не сможете хранить свое имя, так что даже и не пытайтесь сделать это. Лишь объявив переменные Height и Width беззнаковыми короткими целыми, вы получаете возможность сложить их или присвоить одной из них значение другой. Итак, тип переменной определяет: ее размер в памяти; тип данных, которые она может хранить; операции, которые могут выполняться с ее участием. Тип данных является категорией. К нему можно отнести автомобиль, дом, человека, фрукты, геометрическую фигуру и т.п. В языке С++ программист может создать любой нужный ему тип, и каждый из этих типов может совмещать свойства и функциональные возможности встроенных базовых типов. Зачем создавать новый топ Программы обычно пишут для решения таких реальных проблем, как отслеживание информации о служащих или имитация работы отопительной системы. И хотя решать сложные проблемы можно с помощью программ, написанных только с использованием одних целочисленных значений и символов, решения выглядели бы значительно проще, если бы можно бьию создавать уникальные типы для различных объектов. Другими словами, имитацию работы отопительной системы было бы гораздо легче реализовать, если бы можно было создавать переменные, представляющие помещения, тепловые датчики, термостаты и бойлеры. И чем ближе эти переменные соответствуют реальности, тем легче написать такую профамму. К1каШ U члены шсш Новый тип создается путем объявления класса. Класс - это просто коллекция переменных (причем часто различных типов), скомбинированная с набором связанных функций. Автомобиль можно представлять себе по-разному, например как коллекцию, состоящую из колес, дверей, сидений, окон и т.д. Или же, думая об автомобиле, можно представить себе его способность двигаться, увеличивать скорость, тормозить, останавливаться, парковаться и т.д. Класс позволяет инкапсулировать различные запчасти автомобиля и его разнообразные функции в одну коллекцию, которая называется объектом. Инкапсуляция всего, что мы знаем об автомобиле, в один класс имеет для профаммиста ряд преимуществ. Ведь все сведения собраны вместе в одном объекте, на который легко ссылаться, копировать и манипулировать его данными. Клиенты вашего класса, т.е. части профаммы, работающие с этим классом, могут использовать ваш объект, не беспокоясь о том, что находится в нем или как именно он работает. Класс может состоять из любой комбинации типов переменных, а также типов других классов. Переменные в классе называют переменными-членами или данными-членами. Класс Саг может иметь переменные-члены, представляющие сидения, радиоприемник, шины т.д. Переменные-члены, известные также как данные-члены, принадлежат только своему классу. Переменные-члены - это такие же составные части класса, как колеса и мотор - составные части автомобиля. Функции в классе обычно выполняют действия над переменными-членами. Они называются функциями-членами или методами класса. В число методов класса Саг могут входить StartO и Вгеак(). Класс Cat может иметь такие данные-члены, которые представляют возраст и вес животного, а функциональная часть этого класса может быть представлена методами SleepO, Meow() и ChaseMice(). Функции-члены принадлежат своему классу, как и переменные-члены. Они оперируют переменными-членами и определяют функциональные возможности класса. Иътеное шсса Для объявления класса используйте ключевое слово class, за которым следует открывающая фигурная скобка, а за ней - список данных-членов и методов класса. Объявление завершается закрывающей фигурной скобкой и точкой с запятой. Вот, например, как выглядит объявление класса Cat: class Cat { unsigned int itsAge; unsigned int itsWeight; void MeowO; При объявлении класса Cat память не резервируется. Это объявление просто сообщает компилятору о существовании класса Cat, о том, какие данные он содержит (itsAge и itsWeight), а также о том, что он умеет делать (метод MeowO). Кроме того, данное объявление сообщает компилятору о размере класса Cat, т.е. сколько места должен зарезервировать компилятор для каждого объекта класса Cat. Поскольку в данном примере для целого значения требуется четыре байта, то размер объекта Cat составит восемь байтов (четыре байта для переменной itsAge и четыре - для itsWeight). Метод Meow() не требует выделения памяти в объекте. ИВбКОАЬКО САОВ ОО ОСПОАЬЗЦВМЫХ UMBUBX На профаммиста возложена ответственность за присвоение имен переменным-членам, функциям-членам и классам. Как упоминалось на занятии 3, всегда следует давать понятные и осмысленные имена. Например, Cat (Кот), Rectangle (Прямоугольник) и Employee (Служащий) - вполне подходящие имена для классов, а Meow() (Мяу), ChaseMiceO (ДогониМышку) и StopEngineO (ОстановкаДвигателя) - прекрасные имена для методов, поскольку из их названий понятно, что они делают. Многие программисты сопровождают имена своих переменных-членов префиксами its (например, itsAge, itsWeight, itsSpeed). Это помогает отличить переменные-члены от переменных, не являющихся членами класса. В языке С++ имеет значение регистр букв, и все имена классов должны следовать одному образцу. Исходя из этого, вам никогда не придется вспоминать, как именно пишется название вашего класса: Rectangle, rectangle или RECTANGLE. Некоторые профаммисты любят добавлять к имени каждого класса однобуквенный префикс с (от слова class) например, cCat или cPerson, в то время как другие используют для имени только прописные или же только сфочные буквы. Я предпочитаю начинать имена классов с прописной буквы, например Cat или Person. Также многие профаммисты начинают имена функций с прописных букв, а для имен всех остальных переменных используют только сфочные буквы. Слова, являющиеся составными частями имен, разделяют обычно символами подчеркивания (например, Chase Mice) или просто начинают каждое слово с прописной буквы (например, ChaseMice или DrawCircle). Важно придерживаться одного стиля на протяжении всей программы. По мере приобретения опыта профаммирования ваш собственный стиль написания профамм включит в себя соглашения не только по присвоению имен, но также и по отступам, выравниванию фигурных скобок и оформлению комментариев. Обычно солидные компании по разработке профаммнкх ПрЬдкТов имеют специальные отделы, которые занимаются вопросами стандартизации, охватывающими и стилевые особенности программ. Это гарантирует, что все разработчики смогут легко читать программы, созданные их коллегами.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |