Перейти к содержимому

Фотография

Виртуальные методы C++

- - - - - ГАЙД

  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1
  P45H3

P45H3
    Эксперт
  • Сообщения:
    205
  • Номер пользователя:
    17
  • Регистрация:
    22-ноя 17
  • Репутация:
    598
В данной статье я расскажу про
виртуальные методы.
 
Виртуальный метод даёт возможность переопределения
метода в производном классе.
 
Представим ситуацию:
У нас есть класс CAdmins имеющий метод
GetNickName() , а также производный класс CP45H3 в котором нам
нужно переопределить метод GetNickName().
Если мы опишем такой код:

Пожалуйста Логин или Регистрация чтобы увидеть этот скрытый контент

То компилятор скажет нам: "Это всё хуйня, переделывай".
 
В реализации задуманного нам помогут виртуальные методы.
Сделав метод в базовом классе виртуальным, мы сможем переопределять его
в любом производном классе.
Пример реализации задуманного

Пожалуйста Логин или Регистрация чтобы увидеть этот скрытый контент

Вывод:
Скрытый текст
В данном коде имеется один базовый класс и два
производных, которые переопределяют метод GetNickName().
Деструктор чисто виртуального класса также должен быть
виртуальным для корректного удаления объектов производных классов.
 
Скачать проект вы можете на моём GitHub'e

Пожалуйста Логин или Регистрация чтобы увидеть этот скрытый контент


  • MS_CHESTER, SID и Ikfakof это нравится




Темы с аналогичными тегами: ГАЙД

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Тему поситили 41 пользователей


    EdithBak, Lavilllob, ukvartiraJef, Michaelicofe, Kevinrog, GordonTog, RandyWooke, Charlespaill, JamesAbuts, RobertVopsy, Henrybuh, JamespuT, ThomasFluob, Georgegluts, DanielExisy, LucilleScurb, Flazy, MarusechkaElart, RodneyInhen, VID, mhalaider, MS_CHESTER, LearnC++, DagerOnFire, 1About1, fuze, pokpok23, ITOTEY, SteamiestChief, duke04, Bulb4, DarkD, STRIPEDTIGER, Mark46, XVII, Ikfakof, AntonLight, s9va, jlo, P45H3, SID