AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hilfe mit Textadventure

Ein Thema von MW28 · begonnen am 8. Jan 2015 · letzter Beitrag vom 9. Jan 2015
Antwort Antwort
Seite 2 von 2     12
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Hilfe mit Textadventure

  Alt 9. Jan 2015, 13:16
Eine unschöne Sache ist da noch drin. Der leere constructor.

Konstruktoren dienen dazu, die einzelnen Felder des Objekts zu initialisieren. So, wie du es nun hast, gibt es ein Problem: Nach dem Aufruf von TRaum.Create; sind die Felder FNorth...FEast von TRaum mit "irgendwas" gefüllt. Ein Test auf nil (um festzustellen, das es in diese Richtung nicht weitergeht) kann also problemlos ergeben "da gehts weiter", denn "irgendwas" ist nicht nil. Du arbeitest dann mit ungültigen Daten, was direkt in eine Schutzverletzung mündet.

Nutze den Konstruktor also, um solche Probleme gar nicht erst entstehen zu lassen und setze die Felder von TRaum auf nil. Das erspart viel Ärger und womöglich aufwändige Fehlersucherei.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.197 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Hilfe mit Textadventure

  Alt 9. Jan 2015, 13:20
Das der leere Konstruktor unnötig ist stimmt zwar, die Begründung ist aber Quatsch. Die Felder sind definitiv mit Nil initialisiert. Das verwechselst du mit lokalen Variablen in einer Methode, die sind es nämlich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Hilfe mit Textadventure

  Alt 9. Jan 2015, 13:30
Das der leere Konstruktor unnötig ist stimmt zwar, die Begründung ist aber Quatsch. Die Felder sind definitiv mit Nil initialisiert. Das verwechselst du mit lokalen Variablen in einer Methode, die sind es nämlich nicht.
So isses
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:34 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-2025 by Thomas Breitkreuz