Diretivas virtual e override do Delphi - Evitando vazamentos de memória

Recentemente encontrei um problema de Memory Leak em uma aplicação, devido a causa do problema estou fazendo este post para evitar esse tipo de erro.

No Delphi a diretiva virtual permite que seu método seja sobrescrito com o mesmo nome, ou seja, em uma subclasse você pode reescrever um método de acordo com suas necessidades.

Ja a diretiva override significa que o método esta sobrescrevendo o método original, então na frase acima o método sobrescrito deve conter a diretiva override , e o método original a diretiva virtual .

Um erro simples de esquecer uma dessas diretivas pode acontece de ao dar .Free em uma classe não chamar o destructor , ocasionando na não liberação de memória de alguns objetos.

Exemplo:

  1. Abaixo temos a classe TRetornoWebService , nessa classe declaramos que o Create pode ser sobrescrito por uma subclasse, e o Destroy está sendo reescrito, pois, a classe TObject do delphi já possui um virtual em seu Destroy .

  2. |263px;x152px;

  3. Agora na subclasse TRetornoConsultaNFe , que é “filha” da TRetornoWebService , sobreescrevemos o Create e o Destroy das classes ancestrais, nesse caso não foi necessário adicionar o virtual no Destroy da TRetornoWebService, pois, a TObject já possuí um Destroy declarado com virtual.

  4. |390px;x273px;

  5. Na imagem acima o inherited chama o método original da classe pai após realizar as chamadas acima dele.

Algumas outras diretivas:

virtual - Usado para definir um método que pode ser sobrescrito.

override - Utilizado para definir um método que está sobrescrevendo um método virtual.

abstract - É usado com virtual ou override para definir um método sem implementação que deve ser sobrescrito na subclasse, senão o mesmo não será chamado.

final - Usado com virtual ou override para definir um método que não pode ser sobrescrito.

reintroduce - É como o override, porem, funciona com métodos não dinamicos e não virtuais. Utilizado se você quiser reintroduzir um método e comunicar para o compilador que você não cometeu um engano escrevendo um método com mesmo nome da classe pai.

overload - Essa diretiva permite que você declare um método com mesmo nome, porem, com parâmetros diferentes.

먹튀검증 That’s exactly what I was looking for. 먹튀검증The country I live in is 안전놀이터 I think this article in 토토사이트 will be very helpful.꽁머니 Do you know about 꽁머니? It’s not that famous, but you’ll find it interesting enough for you to come and talk to 안전놀이터. Thank you.스포츠중계 In addition, https://mtboan.com/COVID-19 is becoming a problem 먹튀사이트조회 all over the world these days. 먹튀보안관 I hope there’s no harm to you and your family. 먹튀가디언 Thank youhttps://twiddeo.com/ Nowadays,먹튀 the weather is getting 먹튀검증사이트 colder every day먹튀검증커뮤니티, so wear warm clothes 먹튀검증커뮤니티 and watch out for a cold 놀이터토토 In addition 토토사이트, there are interesting 먹튀검증 topics and 안전놀이터 discussions going 먹튀요기요 on on my sitehttps://mtygy.com/, like the author wrote먹튀, so please visit us anytime.사설토토
토토레프리 Hello, 먹튀검증 I am one of the most impressed people in your article. I’m very curious about how you write such a good article. 먹튀 Are you an expert 먹튀검증업체 on this subject? 먹튀사이트 I think so. I’m also very interested in this topic. If you visit my site, 메이저놀이터 there are many articles similar to your topic. I want to have a good relationship with you in the future. 메이저놀이터 I’d appreciate it 사설토토 if you could visit my website. 메이저사설토토 If you have enough time, come and see me. The name of my site is 사설놀이터. Please visit 안전놀이터 and read my article and leave your comments. 안전놀이터 I will make sure 토토사이트 to read it and reflect your opinion. Thank you again 메이저토토사이트 for allowing me to read these posts, and have a nice day today. 토토사이트추천 Thank you. 토토사이트 Goodbye!https://elephonemobile.com/
안전놀이터검증및연구센터 Nice to meet you. 토토사이트분석전문블로그 Your post was really impressive. 먹튀검증의새로운패러다임 It’s an article of https://kipu.com.ua/genius that https://remarka.kz/I didn’t think of. https://subtitles.ee/I also run a website with 안전놀이터a theme similar to 먹튀검증 that of your article. 토토사이트 I wish I had the talent to 먹튀사이트검증 write with a new perspective like you. 메이저토토사이트 How did you come to 메이저안전놀이터 think of this? 안전한사설토토사이트 I really want to know 공식안전놀이터 if I can. 먹튀검증커뮤니티 Because I want to 먹튀검증토토사이트 write like you. 먹튀검증토토 There are many articles on 사설안전놀이터 my website, but they are not enough compared to you. Could you visit my website if you have time? Please read the posts on my website and leave your thoughts. Then it will be very helpful for me to develop. Thank you. Have a great day. It will be of great 검증토토사이트 help to me. Anyway, have a nice day 안전한먹튀검증 today and thank you for your hard work. 최고의안전놀이터 Nowadays,토토사이트검증업체 the weather is getting colder every day토토안전놀이터, so wear warm clothes and watch out for a cold 확실한먹튀검증 My field 안전한토토사이트 of interest seems to be very similar to me 안전한놀이터, so I keep looking for more articles. 먹튀사이트검증 In addition, there are interesting topics 메이저사설토토사이트 and discussions going on on my site,놀이터추천 like the author wrote, so please visit us anytime.먹튀신고