Изпълнение в гр

5.3.3. Контактни операции

В C ++ операция език (метод) се определя като един от членовете на класа. Когато се обадите на операцията използва същата система за означаване както в атрибути работа: работа селекция член "->" се прилага за съответните показатели са:

стойности на параметрите за експлоатация може да бъде един от най-построен тип (инт, поплавък, Чар и т.н.), или типовете стойност, дефинирана с помощта typedef, или определени категории обекти, или указатели променливи и константи изброените типове или обектни указатели.

Името на атрибут или операция, се използва като идентификатор в прилагането на метода се позовава имплицитно членове на съответния обект, към който се прилага операцията. В следващия пример, х и у са атрибутите на формата на обект клас, които се движат се прилага операция:

Това е еквивалентно на прилагането на тази имплицитна параметър, чиято стойност е винаги указател към обекта, към който се прилага операцията. Следващият фрагмент е еквивалентна на предишната програма:

5.3.4. Използването на наследството

В ++ наследство на езика C, създаден само при съставянето на програмата и не могат да бъдат променяни по време на неговото изпълнение. Поведението на всеки обект е напълно определя от класа на обекта и е еднаква за всички обекти от този клас. Всички характеристики на наследство са едни и същи за всички обекти във всеки клас.

Списък суперкласа (ако не е празна) е показан в началото на определението за всеки клас; Участък се нарича производен клас. Следващият пример показва описанието на клас т и описанието на подклас от класа на Форма и подкласове на точка Box и кръг Форма клас:

Членовете на суперкласа (атрибути и операции) са наследени от неговите подкласове (членове, определени в суперкласа са на разположение във всички негови подкласове). Членовете на суперкласа го определят като частна, недостъпни за дейността на неговите подкласове; подгрупи операции на разположение на членовете на определения в него и защитена като обществен суперкласа. Методите, определени в суперкласа могат да бъдат заменени в (част от) неговите подкласове, ако те са определени като виртуална (виртуални). Например, методът на записване Shape клас може да се замени в подкласове Box и кръг, така че тя се определя като виртуален; и методи в подкласове не са заменени, така че те не могат да декларират като виртуални. Ако определението на виртуален метод тя съдържа "инициализация" на 0 (виртуална нищожен запис (цвят Color) = 0), то той трябва да бъде отменено във всеки подклас на това (този метод се нарича абстрактен). Класът, който съдържа най-малко един абстрактен метод, наречен абстрактно. обекти не могат да доведат до абстрактни класове (обекти са определени само за неговите подкласове). Ако всички методи на клас са дефинирани както абстрактно, се казва, че този (резюме) клас определя интерфейса. осъществява в подкласове.

В C ++ поддържа множествено наследяване. Всеки клас може да има един или повече superclasses.

5.3.5. зависимости за изпълнението

В зависимост в C ++ се изпълняват с помощта на указатели или чрез специални съоръжения. Така например, зависимостта на "връзката много към един" между класовете т и Група осъществява чрез указатели:

Когато съгласно добавя (или отстранява) връзка, и двете насоки трябва да се променят:

Методи Group :: add_item и група :: remove_item да промените частен (частни) Точка клас атрибути, въпреки че те са дефинирани в своята подклас Group, тъй като те са определени като приятелски (приятели) за класа на т.

В този пример, пропуснати проверка:
  1. Тя не е включена в графика на групата вече е член на тази група, като в този случай не е необходимо отново да се включи в групата;
  2. Това не е дали да се включват в групата на графичен член на някоя друга група, като в този случай не може да бъде включен в групата, или искате да дадете на съобщение на екрана.

Понякога, свързани един с друг (в зависимост) обекти включва така наречените колективни класове. Като пример, помислете за този клас ItemSet клас (набор от обекти):

Отношенията между класове и могат да бъдат реализирани с помощта на специални класове (всеки такъв клас обект описва връзката между обектите, съответстващи на класа). В този случай, атрибути на класа съответстват на атрибутите зависимост тях описани.

5.3.6. Модели на C ++

В C ++ език и евентуално параметри програмиране (програмиране с използването на общи компоненти). Общи (параметризираните) компоненти са собственост на адаптивност към специфичната ситуация, в която се използва този компонент, който позволява развитието на достатъчно гъвкави и по компоненти на същото време на програми с висока производителност (по-специално, обекти).

Параметрично програмиране в C ++ език се осъществява с помощта на шаблони (шаблони). В C ++ дефинира два вида шаблони: класове шаблон и шаблонни функции.

Шаблони класове могат да се използват по много начини, но най-очевидната е да ги използват като адаптивни обекти памет. Шаблони функции могат да бъдат използвани за определяне на параметризираните алгоритми. Основната разлика от функциите на шаблон от класа на шаблон, който не трябва да се каже на компилатора кои видове параметри, използвани функция, той може да го идентифицират по вид и нейните формални параметри.

NYU / STL / STL.html. На последно място, прилагането на настоящата версия е достъпно на ftp://ftp.cs.rpi.edu/pub/stl на STL.