ПредишенСледващото



Наследяване на C ++

наследяване

    • Наследяването - механизъм за получаване на нов клас на базата на съществуващата. Съществуващите клас може да бъде изменен или променени за създаване на нов клас.
    • хора
    • Студентски работник
    • Учител на служителите болница zaochnikov
    • shtatnik непълно
    • Йерархичната структура на наследство


Защо трябва да наследи

клас CLASS_NAME. spisok_bazovyh_klassov

Повторно използване на код - използвайте този клас за създаване на обекти, и като основа за създаването на нов клас

Изграждане на йерархия клас дава възможност за извършване на подредбата на класове

Когато наследи, можете да разширите характеристиките на класа, да ги ограничите, променя или унищожи



достъп наследство



достъп наследство



прост наследство

Не е наследил:

  • конструктори;
  • деструктори;
  • Новият Заменена експлоатация;
  • Е преминала задача;
  • с приятелски


прост наследство

Класът има базов клас



конструктори извикване на процедури - от базовия клас (първи, втори, трети)



Процедурата за свикване деструктори - в обратен ред



Правилник за наследяване на различни методи

Строителите не са наследени, така получени клас трябва да има собствени дизайнери

Ако в конструктора на извлечения клас явно викане конструктора на базовия клас отсъства, конструктора на базовия клас по подразбиране

Когато йерархия на извикването на конструктора на много нива започва от най-високо ниво

Ако една от клас съдържа друг клас обекти, първо трябва да се обадите на строителя на членовете на групата, а след това на строителя клас

Не е наследил операция задача. Тя трябва да бъдат ясно определени в новия клас.

Деструкторите не се наследяват. Ако не е посочен деструктор в извлечен клас, тя се генерира по подразбиране, и призовава деструктори на базови класове, както и в обратен ред на конструктор разговори.



Полиморфизъм. Виртуалните функции

В края или динамично свързване

клас Base

виртуален невалидни печат ()

DP -> печат (); // реж

р -> печат (); // реж



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

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



Полиморфизъм. Виртуалните функции

клас Base

защитен: междинно съединение Н, R;

Base (междинно съединение А, междинно съединение б): з (а), R (б) <>

виртуален двойно f1 () // V цилиндър

невалидни f2 ()

Абстрактни класове Pure Виртуална функция

Абстрактно е един клас, в които има най-малко един празен (празен) виртуална функция.

Pure виртуална функция се нарича компонент, който има следното определение:

виртуален вид имеНаФункцията (spisok_formalnyh_parametrov) = 0;

Pure виртуална функция не прави нищо и не е достъпна за обаждания. Неговата цел - да служи като основа за заместване функциите си в областта на производните класове.

Абстрактен клас може да се използва само като основа за получени класове.

В сравнение с конвенционалните класове, абстрактни класове са "ограничени права." А именно:

не е възможно да се създаде обект от абстрактен клас;

абстрактен клас не може да се използва за определяне на вида на параметър функция или връщане вида на стойността на функцията;

абстрактен клас не може да се използва с изрично тип реализация; В същото време, можете да определите стрелките и препратки към абстрактен клас.

абстрактен клас обект не може да бъде формален параметър на функцията, но официалната параметър може да бъде указател към абстрактен клас.



Абстрактни класове Pure Виртуална функция



Абстрактни класове и наследяване

клас Person



множествено наследяване



Обаждане на базовия клас конструктор



Характеристики множествено наследяване



Виртуални базови класове



деструктор, използвайки виртуални базови класове Procedure Call

Обадете деструктори - в обратен ред





видимост Резолюция

Свързани статии

Подкрепете проекта - споделете линка, благодаря!