Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 563

•  TDictionary Custom Sort  6 586

•  Fast Watermark Sources  6 356

•  3D Designer  9 306

•  Sik Screen Capture  6 689

•  Patch Maker  7 063

•  Айболит (remote control)  7 072

•  ListBox Drag & Drop  5 943

•  Доска для игры Реверси  97 453

•  Графические эффекты  7 275

•  Рисование по маске  6 572

•  Перетаскивание изображений  5 445

•  Canvas Drawing  5 814

•  Рисование Луны  5 518

•  Поворот изображения  5 050

•  Рисование стержней  3 602

•  Paint on Shape  2 851

•  Генератор кроссвордов  3 731

•  Головоломка Paletto  3 010

•  Теорема Монжа об окружностях  3 813

•  Пазл Numbrix  2 511

•  Заборы и коммивояжеры  3 205

•  Игра HIP  2 169

•  Игра Go (Го)  2 103

•  Симулятор лифта  2 483

•  Программа укладки плитки  2 139

•  Генератор лабиринта  2 617

•  Проверка числового ввода  2 295

•  HEX View  2 627

•  Физический маятник  2 238

 
скрыть

Override, Vitual, Dynamic - методы



Автор: Mark

Если метод в классе предка объявлен как виртуальный (virtual) или динамический (dynamic), вам необходимо перекрыть его во всех классах-наследниках. Если вы объявляете наследованный метод виртуальным или динамическим, вы начинаете строить его новое виртуальное/динамическое дерево наследования. Допустим, у нас есть следующая иерархия: A (родитель) - B - C - D. Если вы объявляете метод как виртуальный (или динамический) в A, перекрываете в B, создаете виртуальным в C и перекрываете в D, вот что получается:

фактический  класс, используемый   класс, использующий
класс        для доступа к методу  метод
-----------+---------------------+--------------------
     D                D                     D
     D                C                     D
     D                B                     B
     D                A                     B

     C                C                     C
     C                B                     B
     C                A                     B
  
     B                B                     B
     B                A                     B

Вывод: работа виртуального/динамического наследования прекращается в момент создания одноименного виртуального/динамического метода наследниками класса.