Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы, (часть 6/6)

  Методы, с которыми вы имели дело в предыдущих разделах, называются статическими. По умолчанию все методы класса именно статические. Если в классе-наследнике переопределить такой метод (ввести новый метод с тем же именем), то для объектов этого класса новый метод отменит родительский. Если обращаться к объекту этого класса, то вызываться будет новый метод. Но если обратиться к объекту как к объекту родительского класса, то вызываться будет метод родителя.

  Все это мы видели на примерах в предыдущем разделе. Но представим себе такую задачу. Вы объявили в приложении массив объектов типа TPerson:
var PersArray: array[1..10] of TPerson;

  Далее заполняете этот массив вперемешку объектами классов TStudent и TEmpl, т.е. создаете, например, общий список учащихся и преподавателей. В разд. 3.5.4 вы видели, что это возможно, так как переменная базового класса может принимать объекты производных классов. А затем хотите пройти в цикле элементы этого массива и отобразить в окне Memo информацию о них:

for i:=l to 10 do Memol.Lines.Add(PersArray[i].PersonToStr);

  Или аналогичная задача с использованием списка TList:
объявлена переменная var List: TList; в нее заносятся указатели на объекты классов TStudent и TEmpl, а затем вы хотите пройти в цикле элементы этого списка и отобразить их в окне Memo:

for i:=0 to List.Count - 1 do Memol.Lines.Add(TPerson(List[i]).PersonToStr);

  Реализуйте один из этих вариантов (не забудьте при завершении приложения удалять объекты из памяти), и посмотрите, что получится. А получится очевидный результат: во всех случаях сработает метод PersonToStr родительского класса TPerson, так как соответствующие объекты объявлены объектами этого класса. И программа, естественно, не знает, объекты какого класса хранятся в массиве или в списке.

  Конечно, можно усложнить код, проверять каждый раз операцией is истинный класс объекта, и указывать операцией as этот класс (см. об этих операциях в разд. 3.5.4). Для массива это будет выглядеть так:

if PersArrayfi] is TStudent then 
 Memol.Lines.Add((PersArray[i] as TStudent).PersonToStr)
  else 
if PersArray[i] is TEmpl then 
 Memol.Lines.Add((PersArray[i] as TEmpl).PersonToStr);

  А для списка аналогичный код имеет вид:


if  TPerson(List[i])   is  TStudent then    Memol.Lines.Add(TStudent(List[i]).PersonToStr) 
 else  
 if  TPerson(List[i]) is TEmpl then    Memol.Lines.Add(TEmpl(List[i]).PersonToStr);

  Задача будет решена, но некрасиво. Во-первых, код усложняется. А во-вторых, если вы впоследствии решите создать какие-то новые классы, производные от TPerson, вам придется вводить соответствующие дополнительные проверки в эти коды.

  Красивое решение подобных задач обеспечивается очень легко с помощью виртуальных методов. Виртуальные методы не связаны с другими методами с тем же именем в классах-наследниках. Если в классах-наследниках эти методы перегружены, то при обращении к такому методу во время выполнения будет вызываться тот из методов с одинаковыми именами, который соответствует истинному классу объекта. В приведенных примерах, если сделать методы PersonToStr виртуальными, то операторы

Memol.Lines.Add(PersArray[i].PersonToStr); Memol.Lines.Add(TPerson(List[i]).PersonToStr);

  будут автоматически вызывать методы PersonToStr того класса (TStudent, TEmpl или других производных от TPerson), к которому относится каждый объект. Такой подход, облегчающий работу с множеством родственных объектов, называется полиморфизмом.

   Сделать метод родительского класса виртуальным очень просто. При объявлении в классе виртуальных методов после точки с занятой, завершающей объявление метода, добавляется ключевое слово virtual. Например, чтобы объявить в базовом классе TPerson метод PersonToStr виртуальным, надо в его объявление добавить слово virtual:

function PersonToStr: string; virtual;

  Чтобы перегрузить в классе-наследнике виртуальный метод, надо после его объявления поставит ключевое слово override. В наших примерах объявления метода в классах и должны выглядеть так:

function PersonToStr: string; override;
И это все! Методы стали виртуальными и приведенные в начале данного раздела операторы, будут работать безо всяких проверок if.

  Если в каком-то базовом классе метод был объявлен как виртуальный, то он остается виртуальным во всех классах-наследниках (в частности, и в наследниках классов наследников). Однако обычно для облегчения понимания кодов, перегруженные методы принято повторно объявлять виртуальными, чтобы была ясна их суть для тех, кто будет строить наследников данного класса. Например:

function PersonToStr: string; override; virtual;

  В родительском классе виртуальный метод не обязательно должен быть реализован. Такой виртуальный метод, реализация которого не определена в том классе, в котором он объявлен, называется абстрактным. Предполагается, что этот метод будет перегружен в классах-наследниках. Только в тех классах, в которых он перегружен, его и можно вызывать.

  Объявляется абстрактный метод с помощью ключевого слова abstract после слова virtual. Например, вы можете в классе TPerson объявить метод PersonToStr следующим образом:

function PersonToStr: string; virtual; abstract;

   В этом случае вы должны удалить в этом классе реализацию метода. Класс, содержащий абстрактный метод, сам становится абстрактным. Объекты такого класса создавать нельзя. Можно создавать объекты только тех классов-наследников, в которых абстрактный метод перегружен и реализован.

Удачи!
Встретимся в следующем уроке!




Добавил(а): Programer Дата: 2013-08-04
Эй уже кто-нибудь ответит мне ?


  1. JbjTU
    JbjTU 6 months ago
    Medicament information leaflet. Cautions. <a href="https://prednisone4u.top">order generic prednisone price</a> in Canada. Actual information about drug. Get here.
    [url=https://studybscnursinginbangalore.com/sankara-academy-of-vision]Some about medicines.[/url] [url=http://134.236.247.147/eof/code/login/guestbook.php]All information about medicines.[/url] [url=https://lensesonline.kz/product/64/?rating=1]Actual what you want to know about pills.[/url] a706a28
  2. veomveiwkn
    veomveiwkn 6 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g8dmw8w7r6km0p883jmg770vl9i77e55s.org/]uveomveiwkn[/url]
    veomveiwkn http://www.g8dmw8w7r6km0p883jmg770vl9i77e55s.org/
    <a href="http://www.g8dmw8w7r6km0p883jmg770vl9i77e55s.org/">aveomveiwkn</a>
  3. nqzndn
    nqzndn 6 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g0ow5n2r1556zt9r8v3b403grb1zzh75s.org/]unqzndn[/url]
    <a href="http://www.g0ow5n2r1556zt9r8v3b403grb1zzh75s.org/">anqzndn</a>
    nqzndn http://www.g0ow5n2r1556zt9r8v3b403grb1zzh75s.org/
  4. arufivi
    arufivi 6 months ago
    [url=http://mewkid.net/when-is-xuxlya2/]Amoxicillin 500 Mg[/url] <a href="http://mewkid.net/when-is-xuxlya2/">Amoxicillin 500mg</a> dwn.mhqp.thedelphi.ru.bzo.ox http://mewkid.net/when-is-xuxlya2/
  5. oqheqovd
    oqheqovd 6 months ago
    [url=http://mewkid.net/when-is-xuxlya2/]Amoxicillin[/url] <a href="http://mewkid.net/when-is-xuxlya2/">Amoxicillin Without Prescription</a> klg.drmm.thedelphi.ru.hzv.wk http://mewkid.net/when-is-xuxlya2/
  6. tapeyec
    tapeyec 6 months ago
    [url=http://mewkid.net/when-is-xuxlya2/]Buy Amoxicillin Online[/url] <a href="http://mewkid.net/when-is-xuxlya2/">Amoxicillin</a> scs.crxy.thedelphi.ru.nmg.hf http://mewkid.net/when-is-xuxlya2/
  7. unahigi
    unahigi 6 months ago
    [url=http://mewkid.net/when-is-xuxlya2/]Buy Amoxicillin[/url] <a href="http://mewkid.net/when-is-xuxlya2/">Amoxicillin Online</a> wrs.xzya.thedelphi.ru.jay.jh http://mewkid.net/when-is-xuxlya2/
  8. zgnjpgmfmp
    zgnjpgmfmp 6 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g86hcx9e0ra7ei3f7a6b659e3934h0mvs.org/">azgnjpgmfmp</a>
    zgnjpgmfmp http://www.g86hcx9e0ra7ei3f7a6b659e3934h0mvs.org/
    [url=http://www.g86hcx9e0ra7ei3f7a6b659e3934h0mvs.org/]uzgnjpgmfmp[/url]
  9. wllprmhfsf
    wllprmhfsf 6 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    wllprmhfsf http://www.g72zcr2t8h22py7u2ar5oa84670x3u5is.org/
    <a href="http://www.g72zcr2t8h22py7u2ar5oa84670x3u5is.org/">awllprmhfsf</a>
    [url=http://www.g72zcr2t8h22py7u2ar5oa84670x3u5is.org/]uwllprmhfsf[/url]
  10. SandraPlecy
    SandraPlecy 6 months ago
    orgasm on loveawake.ru
  11. zigndmfe
    zigndmfe 6 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g37womlcv5qc18m7qdzp76b08l928010s.org/]uzigndmfe[/url]
    <a href="http://www.g37womlcv5qc18m7qdzp76b08l928010s.org/">azigndmfe</a>
    zigndmfe http://www.g37womlcv5qc18m7qdzp76b08l928010s.org/
  12. itofgqmgo
    itofgqmgo 6 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g94bu5rw6ey458l3d4xbqi3349i2y83ms.org/">aitofgqmgo</a>
    [url=http://www.g94bu5rw6ey458l3d4xbqi3349i2y83ms.org/]uitofgqmgo[/url]
    itofgqmgo http://www.g94bu5rw6ey458l3d4xbqi3349i2y83ms.org/
  13. mmiombvjx
    mmiombvjx 6 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    mmiombvjx http://www.gbay54z114a1146t3zbucbdv062yx120s.org/
    [url=http://www.gbay54z114a1146t3zbucbdv062yx120s.org/]ummiombvjx[/url]
    <a href="http://www.gbay54z114a1146t3zbucbdv062yx120s.org/">ammiombvjx</a>
  14. lmlnicejvd
    lmlnicejvd 6 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    lmlnicejvd http://www.gorpx0jwtt6m1ma93402852to7529jx1s.org/
    [url=http://www.gorpx0jwtt6m1ma93402852to7529jx1s.org/]ulmlnicejvd[/url]
    <a href="http://www.gorpx0jwtt6m1ma93402852to7529jx1s.org/">almlnicejvd</a>
  15. cnmtfsqkeb
    cnmtfsqkeb 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g85a120vsp22z0rde9nc1sk2090z5z3ns.org/">acnmtfsqkeb</a>
    [url=http://www.g85a120vsp22z0rde9nc1sk2090z5z3ns.org/]ucnmtfsqkeb[/url]
    cnmtfsqkeb http://www.g85a120vsp22z0rde9nc1sk2090z5z3ns.org/
  16. gpvxgcqkpn
    gpvxgcqkpn 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g0x9hekt9n75v08x69cuc156ic3y9y12s.org/]ugpvxgcqkpn[/url]
    <a href="http://www.g0x9hekt9n75v08x69cuc156ic3y9y12s.org/">agpvxgcqkpn</a>
    gpvxgcqkpn http://www.g0x9hekt9n75v08x69cuc156ic3y9y12s.org/
  17. dmcsytvxm
    dmcsytvxm 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g2h738w615obkp0e4321al14kgbnjj25s.org/">admcsytvxm</a>
    dmcsytvxm http://www.g2h738w615obkp0e4321al14kgbnjj25s.org/
    [url=http://www.g2h738w615obkp0e4321al14kgbnjj25s.org/]udmcsytvxm[/url]
  18. dnoptzfpjw
    dnoptzfpjw 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g5bd0ins50394034av3hf8ct8ifwz637s.org/">adnoptzfpjw</a>
    dnoptzfpjw http://www.g5bd0ins50394034av3hf8ct8ifwz637s.org/
    [url=http://www.g5bd0ins50394034av3hf8ct8ifwz637s.org/]udnoptzfpjw[/url]
  19. fcxnnvmwqb
    fcxnnvmwqb 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g61j5u645bh3gr3l58xr33xd168mdn3ls.org/">afcxnnvmwqb</a>
    fcxnnvmwqb http://www.g61j5u645bh3gr3l58xr33xd168mdn3ls.org/
    [url=http://www.g61j5u645bh3gr3l58xr33xd168mdn3ls.org/]ufcxnnvmwqb[/url]
  20. Richardmoogs
    Richardmoogs 5 months ago
    ничего такого
    _________________
    [URL=https://ua.onlinebestrealmoneygames.xyz/kazino-za-10-griven-2/]Казино за 10 гривен[/URL]
  21. iohqetfyp
    iohqetfyp 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g14d0j2428uc901630ujmka7kj0fsub6s.org/">aiohqetfyp</a>
    iohqetfyp http://www.g14d0j2428uc901630ujmka7kj0fsub6s.org/
    [url=http://www.g14d0j2428uc901630ujmka7kj0fsub6s.org/]uiohqetfyp[/url]
  22. hkxofjkzpo
    hkxofjkzpo 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.gbi7b8j566rf4l8752p9jk5k693v4kzrs.org/">ahkxofjkzpo</a>
    hkxofjkzpo http://www.gbi7b8j566rf4l8752p9jk5k693v4kzrs.org/
    [url=http://www.gbi7b8j566rf4l8752p9jk5k693v4kzrs.org/]uhkxofjkzpo[/url]
  23. gihcwqogzi
    gihcwqogzi 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    gihcwqogzi http://www.g64e0t0se1376l0kz99hf5t9a59klhv7s.org/
    <a href="http://www.g64e0t0se1376l0kz99hf5t9a59klhv7s.org/">agihcwqogzi</a>
    [url=http://www.g64e0t0se1376l0kz99hf5t9a59klhv7s.org/]ugihcwqogzi[/url]
  24. goikxgojnv
    goikxgojnv 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g410nz8dt46fxir3lr27i9956m79pdu4s.org/">agoikxgojnv</a>
    goikxgojnv http://www.g410nz8dt46fxir3lr27i9956m79pdu4s.org/
    [url=http://www.g410nz8dt46fxir3lr27i9956m79pdu4s.org/]ugoikxgojnv[/url]
  25. nfvtpsswqq
    nfvtpsswqq 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.go0vj397r4v16l9vi3jnzk65c153jv61s.org/">anfvtpsswqq</a>
    [url=http://www.go0vj397r4v16l9vi3jnzk65c153jv61s.org/]unfvtpsswqq[/url]
    nfvtpsswqq http://www.go0vj397r4v16l9vi3jnzk65c153jv61s.org/
  26. inipgbyyv
    inipgbyyv 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    inipgbyyv http://www.g8w8d70oru31d8717drzu2l8sa45l11ws.org/
    [url=http://www.g8w8d70oru31d8717drzu2l8sa45l11ws.org/]uinipgbyyv[/url]
    <a href="http://www.g8w8d70oru31d8717drzu2l8sa45l11ws.org/">ainipgbyyv</a>
  27. ngjbgkmks
    ngjbgkmks 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.gs8i5r131fc9x01xayf49884z1exfn57s.org/]ungjbgkmks[/url]
    <a href="http://www.gs8i5r131fc9x01xayf49884z1exfn57s.org/">angjbgkmks</a>
    ngjbgkmks http://www.gs8i5r131fc9x01xayf49884z1exfn57s.org/
  28. ptqjrzchh
    ptqjrzchh 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    ptqjrzchh http://www.g9op23dw0rfkit7sm1y4691d91258tu6s.org/
    [url=http://www.g9op23dw0rfkit7sm1y4691d91258tu6s.org/]uptqjrzchh[/url]
    <a href="http://www.g9op23dw0rfkit7sm1y4691d91258tu6s.org/">aptqjrzchh</a>
  29. nijkxdzot
    nijkxdzot 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g45sp3dxuw3dtzq56715p4j3sq8173t1s.org/]unijkxdzot[/url]
    <a href="http://www.g45sp3dxuw3dtzq56715p4j3sq8173t1s.org/">anijkxdzot</a>
    nijkxdzot http://www.g45sp3dxuw3dtzq56715p4j3sq8173t1s.org/
  30. cnyerngphz
    cnyerngphz 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.ga0w4l123238j0tp0le286aokogje116s.org/">acnyerngphz</a>
    cnyerngphz http://www.ga0w4l123238j0tp0le286aokogje116s.org/
    [url=http://www.ga0w4l123238j0tp0le286aokogje116s.org/]ucnyerngphz[/url]
  31. zfhyzklig
    zfhyzklig 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.gk2660uex9t40su076st7f76p5u79ojjs.org/">azfhyzklig</a>
    zfhyzklig http://www.gk2660uex9t40su076st7f76p5u79ojjs.org/
    [url=http://www.gk2660uex9t40su076st7f76p5u79ojjs.org/]uzfhyzklig[/url]
  32. DariusSnach
    DariusSnach 5 months ago
    Круто + за пост
    _________________
    [url=https://kazino-na-dengi.casinox2017.site/onlayn-sloty-s-vyvodom-deneg/]казино рулетка за рубли играть[/url]
  33. ltxoiqtqs
    ltxoiqtqs 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    ltxoiqtqs http://www.gi373v55lt8zve60emy0l6b399tj38s4s.org/
    <a href="http://www.gi373v55lt8zve60emy0l6b399tj38s4s.org/">altxoiqtqs</a>
    [url=http://www.gi373v55lt8zve60emy0l6b399tj38s4s.org/]ultxoiqtqs[/url]
  34. bnpwdyclc
    bnpwdyclc 5 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g9e2z0eu1352yf7x70e4ulfa70fh153rs.org/]ubnpwdyclc[/url]
    <a href="http://www.g9e2z0eu1352yf7x70e4ulfa70fh153rs.org/">abnpwdyclc</a>
    bnpwdyclc http://www.g9e2z0eu1352yf7x70e4ulfa70fh153rs.org/
  35. vjzxoqlfej
    vjzxoqlfej 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    vjzxoqlfej http://www.gg611i9o6ob2m629488r27j4hgkd9gbhs.org/
    [url=http://www.gg611i9o6ob2m629488r27j4hgkd9gbhs.org/]uvjzxoqlfej[/url]
    <a href="http://www.gg611i9o6ob2m629488r27j4hgkd9gbhs.org/">avjzxoqlfej</a>
  36. lehlqybbs
    lehlqybbs 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g63d95hrg61vo6p516155s632icfuxsss.org/">alehlqybbs</a>
    [url=http://www.g63d95hrg61vo6p516155s632icfuxsss.org/]ulehlqybbs[/url]
    lehlqybbs http://www.g63d95hrg61vo6p516155s632icfuxsss.org/
  37. wdxvhtclxi
    wdxvhtclxi 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    wdxvhtclxi http://www.g578x2i1w395t97btc87yu5ofj546rfys.org/
    [url=http://www.g578x2i1w395t97btc87yu5ofj546rfys.org/]uwdxvhtclxi[/url]
    <a href="http://www.g578x2i1w395t97btc87yu5ofj546rfys.org/">awdxvhtclxi</a>
  38. wnkxmbhikk
    wnkxmbhikk 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    wnkxmbhikk http://www.gt1jxjr3j0t4e62s6d4y0jb2964y171ps.org/
    <a href="http://www.gt1jxjr3j0t4e62s6d4y0jb2964y171ps.org/">awnkxmbhikk</a>
    [url=http://www.gt1jxjr3j0t4e62s6d4y0jb2964y171ps.org/]uwnkxmbhikk[/url]
  39. ohcqzlxhom
    ohcqzlxhom 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.gg28a6q3sz5a79p31vue40b0or844e3xs.org/">aohcqzlxhom</a>
    ohcqzlxhom http://www.gg28a6q3sz5a79p31vue40b0or844e3xs.org/
    [url=http://www.gg28a6q3sz5a79p31vue40b0or844e3xs.org/]uohcqzlxhom[/url]
  40. domxcvdy
    domxcvdy 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.gp01e98vg0gg029k620uaa49dz1ha96ls.org/]udomxcvdy[/url]
    <a href="http://www.gp01e98vg0gg029k620uaa49dz1ha96ls.org/">adomxcvdy</a>
    domxcvdy http://www.gp01e98vg0gg029k620uaa49dz1ha96ls.org/
  41. loveawake.ru
    loveawake.ru 4 months ago
    Welcome to the world of adult Dating loveawake.ru
  42. gbglgwkzz
    gbglgwkzz 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    gbglgwkzz http://www.g7150i0984v6llsnao2m1h668gr7nlv9s.org/
    [url=http://www.g7150i0984v6llsnao2m1h668gr7nlv9s.org/]ugbglgwkzz[/url]
    <a href="http://www.g7150i0984v6llsnao2m1h668gr7nlv9s.org/">agbglgwkzz</a>
  43. napilim.pro
    napilim.pro 4 months ago
    Профессиональный монтаж напольных покрытий.Обращайтесь всегда рады вам помочь.
    Напилим.про
  44. qiiokcojo
    qiiokcojo 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.gg9sc0wiqaq1422530352ck5rg3kq82ks.org/]uqiiokcojo[/url]
    qiiokcojo http://www.gg9sc0wiqaq1422530352ck5rg3kq82ks.org/
    <a href="http://www.gg9sc0wiqaq1422530352ck5rg3kq82ks.org/">aqiiokcojo</a>
  45. epyyqfcmfw
    epyyqfcmfw 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g466xt42c93laqi20c43b8jhf0f64m2ns.org/">aepyyqfcmfw</a>
    epyyqfcmfw http://www.g466xt42c93laqi20c43b8jhf0f64m2ns.org/
    [url=http://www.g466xt42c93laqi20c43b8jhf0f64m2ns.org/]uepyyqfcmfw[/url]
  46. lrmkbeznx
    lrmkbeznx 4 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.gf93a6b88i963u0nzl11n0m5n5mhbc68s.org/]ulrmkbeznx[/url]
    lrmkbeznx http://www.gf93a6b88i963u0nzl11n0m5n5mhbc68s.org/
    <a href="http://www.gf93a6b88i963u0nzl11n0m5n5mhbc68s.org/">alrmkbeznx</a>
  47. zcnoqosrf
    zcnoqosrf 3 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.gz7597760v6x89nbuep6t3i9s5cr06ais.org/">azcnoqosrf</a>
    zcnoqosrf http://www.gz7597760v6x89nbuep6t3i9s5cr06ais.org/
    [url=http://www.gz7597760v6x89nbuep6t3i9s5cr06ais.org/]uzcnoqosrf[/url]
  48. fohfsfilwb
    fohfsfilwb 3 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g0gm8u60c2ht3l08nwki0e8x2j9894y3s.org/]ufohfsfilwb[/url]
    fohfsfilwb http://www.g0gm8u60c2ht3l08nwki0e8x2j9894y3s.org/
    <a href="http://www.g0gm8u60c2ht3l08nwki0e8x2j9894y3s.org/">afohfsfilwb</a>
  49. mnkvrmsqh
    mnkvrmsqh 3 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.gkba2tk01gb660e53i6v2u1lmi6957u9s.org/">amnkvrmsqh</a>
    [url=http://www.gkba2tk01gb660e53i6v2u1lmi6957u9s.org/]umnkvrmsqh[/url]
    mnkvrmsqh http://www.gkba2tk01gb660e53i6v2u1lmi6957u9s.org/
  50. lnbjpbjr
    lnbjpbjr 3 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.gidaee80yme8q1x04b312jd6hm702476s.org/]ulnbjpbjr[/url]
    lnbjpbjr http://www.gidaee80yme8q1x04b312jd6hm702476s.org/
    <a href="http://www.gidaee80yme8q1x04b312jd6hm702476s.org/">alnbjpbjr</a>
  51. gqshigvpr
    gqshigvpr 3 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g2i0p3yb042kvfoarot622291z9619wks.org/]ugqshigvpr[/url]
    <a href="http://www.g2i0p3yb042kvfoarot622291z9619wks.org/">agqshigvpr</a>
    gqshigvpr http://www.g2i0p3yb042kvfoarot622291z9619wks.org/
  52. ohcrqhgjj
    ohcrqhgjj 3 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g1e1v3g5u2qq30a8vee19y25rj9e098ms.org/]uohcrqhgjj[/url]
    ohcrqhgjj http://www.g1e1v3g5u2qq30a8vee19y25rj9e098ms.org/
    <a href="http://www.g1e1v3g5u2qq30a8vee19y25rj9e098ms.org/">aohcrqhgjj</a>
  53. bedwpjzyi
    bedwpjzyi 3 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    <a href="http://www.g29eeo99q5e782nw582nbmh9d10a0q0ns.org/">abedwpjzyi</a>
    [url=http://www.g29eeo99q5e782nw582nbmh9d10a0q0ns.org/]ubedwpjzyi[/url]
    bedwpjzyi http://www.g29eeo99q5e782nw582nbmh9d10a0q0ns.org/
  54. fgtbjtscxd
    fgtbjtscxd 3 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g8ce5pp17x059d8f9i2n4gp5dst796m8s.org/]ufgtbjtscxd[/url]
    <a href="http://www.g8ce5pp17x059d8f9i2n4gp5dst796m8s.org/">afgtbjtscxd</a>
    fgtbjtscxd http://www.g8ce5pp17x059d8f9i2n4gp5dst796m8s.org/
  55. swdxgnjpkw
    swdxgnjpkw 2 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.gkma24a83txn508l6q3a1y2vbq7901q6s.org/]uswdxgnjpkw[/url]
    <a href="http://www.gkma24a83txn508l6q3a1y2vbq7901q6s.org/">aswdxgnjpkw</a>
    swdxgnjpkw http://www.gkma24a83txn508l6q3a1y2vbq7901q6s.org/
  56. oljxxdggv
    oljxxdggv 2 months ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    oljxxdggv http://www.g1e5309106o5m52rlcjw6sw70fyb84zks.org/
    [url=http://www.g1e5309106o5m52rlcjw6sw70fyb84zks.org/]uoljxxdggv[/url]
    <a href="http://www.g1e5309106o5m52rlcjw6sw70fyb84zks.org/">aoljxxdggv</a>
  57. yyiosonhyq
    yyiosonhyq a month ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.ghp300t5a949nf3u6q162k57ir94jjays.org/]uyyiosonhyq[/url]
    yyiosonhyq http://www.ghp300t5a949nf3u6q162k57ir94jjays.org/
    <a href="http://www.ghp300t5a949nf3u6q162k57ir94jjays.org/">ayyiosonhyq</a>
  58. fxwgkdvqk
    fxwgkdvqk 20 days ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g388q5a8zj97v1wpj9va45a37xdr97w5s.org/]ufxwgkdvqk[/url]
    fxwgkdvqk http://www.g388q5a8zj97v1wpj9va45a37xdr97w5s.org/
    <a href="http://www.g388q5a8zj97v1wpj9va45a37xdr97w5s.org/">afxwgkdvqk</a>
  59. dmvxqsnfv
    dmvxqsnfv 7 days ago
    Урок 64 - Виртуальные методы, полиморфизм, абстрактные классы Delphi, (часть 6/6) - The Delphi
    [url=http://www.g0bvf1898z442xo2a8r72dfrk7s33ux6s.org/]udmvxqsnfv[/url]
    dmvxqsnfv http://www.g0bvf1898z442xo2a8r72dfrk7s33ux6s.org/
    <a href="http://www.g0bvf1898z442xo2a8r72dfrk7s33ux6s.org/">admvxqsnfv</a>
  60. Oduvan4ikanek
    Oduvan4ikanek 6 days ago
    Error 523 [url=https://support.cloudflare.com/hc/en-us/articles/115003011431-Troubleshooting-Cloudflare-5XX-errors#523error]origin is unreachable[/url]
Отменить.