![]() |
Einige Methoden in mehreren Klassen verwenden?
Moin,
wie kann ich mehrere Methoden in mehreren Klassen verwenden ohne das ich sie für jede neu schreiben muss? Ich habe mir überlegt das ich ja die ganzen Methoden in einer eigenen Klasse haben könnte.... aber dann müsste ich ja jede Klasse die die Methoden braucht von dieser ableiten.... ich muss aber schon von TCLientSocket ableiten...und von 2 Klassen kann ich ja nicht ableiten, also wie könnte ich das machen? ein Feld der Methoden-Klasse in der Klasse möchte ich nicht, da ich die Methoden direkt so: Instanz1.Methode1 aufrufen können möchte jemand ne idee? |
Re: Einige Methoden in mehreren Klassen verwenden?
Schon mal was von Vererbung gehört? :P
Ne im Ernst: Mach eine Oberklasse die all die Funktionen implemetiert die mehrfach vorkommen, und leite davon ab. Das ist einer der Hauptgründe dafür, dass man OOP überhaupt erst entwickelt hat ;). |
Re: Einige Methoden in mehreren Klassen verwenden?
Hi.
Zitat:
@Pseudemys Nelsoni: Das was du beschreibst, geht meines Wissens nur in C und C++ mit der Mehrfachvererbung. Pascal unterstützt nur Interfaces, die nur beschreiben, welche Funktionen/Prozeduren vorhanden sein müssen, diese aber nicht implementieren. Pech... ;-) |
Re: Einige Methoden in mehreren Klassen verwenden?
du könntest diese spezelle funktion als normale funktion anlegen und rufst dann in den Klassenfunktionen einfach die normale funktion auf
Delphi-Quellcode:
type
TYourClass1 = class(irgendwas) private procedure dorigendwas; [...] TYourClass1 = class(irgendwas) private procedure dorigendwas; [...] procedure doirgendwasproc; begin showmessage('trallala'); end; procedure TYourClass1.doirgendwas; begin doirgendwasproc; end; procedure TYourClass2.doirgendwas; begin doirgendwasproc; end; |
Re: Einige Methoden in mehreren Klassen verwenden?
Stehe ich gerade auf dem Schlauch oder spricht etwas gegen
Delphi-Quellcode:
?
type
TMainClass = class(TClientSocket) [...] TClass1 = class(TMainClass) ... |
Re: Einige Methoden in mehreren Klassen verwenden?
Zitat:
|
Re: Einige Methoden in mehreren Klassen verwenden?
Zitat:
|
Re: Einige Methoden in mehreren Klassen verwenden?
Hi.
Zitat:
Er will eine Klasse TMeineLieblingsmethoden erstellen und seine Klasse davon ableiten. Dummerweise MUSS seine Klasse aber auch von TClientSocket abgeleitet sein. Das lässt sich nur über Mehrfachvererbung lösen, die es aber in Delphi/Pascal/ObjectPascal nicht gibt. (<- Punkt!) |
Re: Einige Methoden in mehreren Klassen verwenden?
One word: Nope
Delphi-Quellcode:
Packs in den Compiler und sieh selbst!
type
TMyMethodsAreHere = class(TClientSocket) private ... public procedure IchTuWas; function IchGebWas: Integer; end; TMyClass1 = class(TMyMethodsAreHere) . . end; TMyClass2 = class(TMyMethodsAreHere) . . end; var x: TMyClass1; y: TMyClass2; begin x := TMyClass1.Create(...); y := TMyClass2.Create(...); x.IchTuWas; y.IchGebWas; end. |
Re: Einige Methoden in mehreren Klassen verwenden?
Hi.
14 Words : Er will doch, dass er seine Klasse TMeineMethoden unabhängig von diese, speziellen Fall hat. C++-Beispiel:
Code:
Da Pascal/ObjectPascal/Delphi aber keine Mehrfachvererbung hat geht das nicht!
class MyMethods {
private: protected: public: MyMethods() {}; ~MyMethods() {}; MachDies() { /* tätäää */ } MachDas() { /* tataaa */ } }; class MeinSocket : public MyMethods, public TServerSocket { /* ... */ }; /* aber auch : */ class MeineTextverarbeitung : public MyMethods, public TTextInput { /* ... */ }; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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