Наследяване на 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
Обадете деструктори - в обратен ред
видимост Резолюция
Свързани статии
Подкрепете проекта - споделете линка, благодаря!