Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Көпше түрдегі мұрагерлік






С++ тағ ы туынды класс базалық кластың кез–келген санынан туындауы мү мкін. Туынды кластың қ ұ рамында бірден кө п базалық кластың болуы кө пше тү рдегі мұ рагерлік деп атайды. Синтаксистік кө пше тү рдегі мұ рагерлік жекеше тү рдегі мұ рагерліктен бірнеше элементтен тұ ратын база тізімен ерекшеленеді.

Class A

{

};

Class B

{

};

Class C: public A, public B

{

};

Туынды кластың таныстырушы – объектісін қ алыптастырғ анда, база тізіміндегі базалық кластардың орналасу қ алпы (умолчания) конструкторларының шақ ыруының кезең імен анық талады.

Бұ л қ алпы осы объектілерді жою кезінде деструкторлардың шақ ыруы кезегіне де септігін тигізеді. Бірақ бұ л мә селелер алгоритм секілді базалық объектілерге бө лінген памяттер жә не де бұ л релизация сұ рағ ына қ атысты болып табылады. Ә детте программист бұ ғ ан арнайы кө ң іл бө лмеуі мү мкін.

Шектеу орналғ андық тан туынды кластарды хабарлауда база тізіміне бірдей атаудағ ы класс бірнеше рет кіре алмайды. Бұ л, туынды класты қ алыптастырғ анда қ атысқ ан қ айталанатын элементтер базалық кластарды қ абылдағ ан кезде кездеспеуі керек дегенді білдіреді.

Сонымен бірге, бірдей класс белгіленген туынды кластағ ы бірнеше базалық кластарды қ алыптастырғ анда қ атыса алады. Сондық тан туынды класты қ алыптастырғ анда қ атысқ ан тура емес базалық кластарғ а туынды кластың хабарламасына кіру санына еш шектеу қ ойылмайды.

class A

{

public:

int x0, xA;

};

class B: public A

{

public:

int xB;

};

class C: public A

{

public:

int x0, xC;

};

class D: public B, public C

{

public:

int x0, xD;

};

Бұ л мысалда А мен Д класын хабарлауда екі рет тура емес базалық класс ретінде қ олданылады.

Туынды кластың қ ұ рылымын таныстарғ анда ацикличестік графалар, кластар мен объектілердің сызба нұ сқ асы қ олданылады.

Бұ рындағ ы секілді туынды класта кө рсетіп бағ ытталғ ан, ацикличестік графаның ең тө менгі бө лігі, сызба нұ сқ аның тө менгі дең гейімен туынды класс пен объект фрагментінен сә йкес келеді.

Біз бұ ндай объекті фрагменттін белгіленген кластың туынды таныстырушы – фрагменті деп атаймыз.

Графаның жоғ арғ ы бө лігі, сызба нұ сқ аның жоғ арғ ы дең гейі базалық класс пен объект фрагментіне сә йкес келеді.

Біз бұ ндай объекттін фрагментін кластың базалық таныстырушы базалық фрагменті деп атаймыз.

 

Бақ ылау сұ рақ тары:

1. Мұ рагерлік дегеніміз не?

2. Мұ рагерліктің қ андай тү рлері бар?

3. Базалық класс пен туынды класс арасындағ ы байланыс?

Ә дебиеттер:

1. Г.С. Иванова и др. ООП: Учебник для вузов, М., Изд-во МГТУ им.Баумана, 2003.- 368 с.

2. А.В. Замулин. Курс лекций: Объектно-ориентированное программирование (С++)

3. А.В. Замулин. Курс лекций: ООП (С++, Ява, C#)

4. Бьерн Страуструп. Язык программирования С++. Третье издание. - М.: Изд. Бином, Невский Диалект, 1999.

5. Г. Шилдт. Самоучитель C++. - Санкт-Петербург, Изд. BHV, 2004.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал