AGB  ·  Datenschutz  ·  Impressum  







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

Versuche Objektorientierung zu lernen

Ein Thema von foerster7892 · begonnen am 18. Feb 2012 · letzter Beitrag vom 19. Feb 2012
Antwort Antwort
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Versuche Objektorientierung zu lernen

  Alt 18. Feb 2012, 20:11
Du meinst
TAddition=class(TRechnen); // <- das da und
TSubtraktion=class(TRechnen); // <- das da
Genau, danke für den Hinweis, ist korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.749 Beiträge
 
Delphi 12 Athens
 
#2

AW: Versuche Objektorientierung zu lernen

  Alt 18. Feb 2012, 20:34
Ist public denn nicht ein "reserviertes Wort"?

So wie es aussieht, wird es (nach dem ; ) dennoch als Typenbezeichner erkannt und deswegen wird danach auch das = erwartet.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (18. Feb 2012 um 20:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Versuche Objektorientierung zu lernen

  Alt 18. Feb 2012, 20:39
Ist public denn nicht ein "reserviertes Wort"?
Es gibt Schlüsselwörter, die sind nur in einem bestimmten Kontext reserviert. Wie ja bspw. auch read und write .
Public kann gut eines davon sein, denn wo braucht man Public auch sonst außer in Klassen- und Nostalgie-Object-Deklarationen?
  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
 
#4

AW: Versuche Objektorientierung zu lernen

  Alt 18. Feb 2012, 20:40
Ist public denn nicht ein "reserviertes Wort"?

So wie es aussieht, wird es (nach dem ; ) als Typenbezeichner erkannt und deswegen wird danach auch das = erwartet.
Ich denke das ist nur so ein "halb reserviertes" Wort, denn public macht ja nur Sinn im Kontext einer Typ-Deklaration, und die ist ja durch das ; schon abgeschlossen. Darum kann der Compiler das eben nicht richtig einsortieren

EDIT: zu langsam ... na gut
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
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#5

AW: Versuche Objektorientierung zu lernen

  Alt 18. Feb 2012, 20:42
hi,
ja dass mit der Parameterübergabe bei den Funktionen war nen Tippfehler.

ich hatte oben die Antwort noch editiert wie ich ergänzt hatte, da ihr so schnell geantwortet habt würde ich mich nun noch über Antworten auf die obigen Fragen freuen.

Außerdem geht es leider noch nicht wenn ich den Fehler mit StrToFloat behoben habe, da dann der vorhergesagte Fehler auftritt.(Forward declaration not solved... was bedeutet dass wie behebe ich es?)

Public ist reserviert und bedeutet soweit ich weiß dass die Methoden die unter Public definiert werden öffentlich sind und somit auch aus anderen Units/Klassen gesehen werden können und ich darauf zugreifen kann.



PS:
"Btw. "free" würde ich in Ruhe lassen. Überschreibe lieber Destroy." habe ich in anderen Foren gefunden?
mfg
foerster7892

Geändert von foerster7892 (18. Feb 2012 um 20:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.749 Beiträge
 
Delphi 12 Athens
 
#6

AW: Versuche Objektorientierung zu lernen

  Alt 18. Feb 2012, 20:47
Free heißt immer Free.

In Lazarus kann der Destructor und der Constructor auch anders heißen.
Und schon hast du ein Problem, mit dem Verwenden von Destroy.
Ein Therapeut entspricht 1024 Gigapeut.
  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
 
#7

AW: Versuche Objektorientierung zu lernen

  Alt 18. Feb 2012, 20:49
"Btw. "free" würde ich in Ruhe lassen. Überschreibe lieber Destroy." habe ich in anderen Foren gefunden?
Dann hast du da was falsch verstanden.

Eine Instanz wird mit
Delphi-Quellcode:
Foo := TFoo.Create;
// something with Foo
Foo.Free;
ins Nirwana befördert.

Will man bei der Zerstörung der Klasse etwas spezielles ausführen, dann wir der Destructor überschrieben und der heißt nun mal Destroy .

Also man benutzt Free und überschreibt Destroy !
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


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 11:35 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