AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Klassen

Ein Thema von Cöster · begonnen am 30. Aug 2006 · letzter Beitrag vom 31. Aug 2006
Antwort Antwort
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

Re: Problem mit Klassen

  Alt 30. Aug 2006, 22:19
Zitat von Hawkeye219:
Zitat von 3_of_8:
Wenn self=nil wäre, könnte er nicht mal die Methode aufrufen, da der Methodenzeiger aus einem Pointer auf den Code und einem Pointer auf die Klasseninstanz besteht. Das heißt, wenn die Klasse nicht instantiiert wäre, würde er bevor er in die Methode springt, übelst mit ner AV abschmieren.
Diese Aussage stimmt nur für virtuelle Methoden, nicht aber für statische wie die Methode Oeffnen im Beispiel von Cöster. Selbst wenn die Objektreferenz den Wert NIL enthält, wird die Methode aufgerufen. Bei virtuellen Methoden kommt es zu einer Zugriffsverletzung beim Zugriff auf die VMT.

Gruß Hawkeye
Wieder was dazugelernt. An dieser Stelle könnte man doch eigentlich doch eigentlich Delphi wieder ein bisschen "sicherer" machen, indem man da eine AV raist, oder?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz