![]() |
Konstanten in einer Klasse global definieren
Ich habe da eine Klasse(Klasse2), die von anderen Klassen(Klasse1) instanziiert werden.
Ich möchte nun das die Konstanten aus Klasse2 für Klasse1 zugänglich ist. Klassenaufbau:
Delphi-Quellcode:
Wo soll ich die Konstanten nun deklarieren. Unter Public nimmt er sie nicht. Direkt über Implementation nimmt er sie, aber nicht zugänglich für Klasse1 !
interface
type Klasse2=class private public end; implementation Wie denn dann? [edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit] |
Re: Konstanten in einer Klasse global definieren
Moin Minz,
was verstehst Du in diesem Zusammenhang unter Konstanten? |
Re: Konstanten in einer Klasse global definieren
du musst in deinem constructor der zweiten klasse erst über inherited die erste aufrufen und dann deine konstanten initialisieren , welche im private deklariert sind.
|
Re: Konstanten in einer Klasse global definieren
@Christian
Hi, naja eben Konstanten :mrgreen: , Neu: achso solche die mit const deklariert werden. so dass ich von Klasse1 sagen kann: x:=Klasse2.Konstante1; und auch von Klasse1 will ich sagen können: x:=Konstante1 Könnte ich auch mit Variablen machen, aber ich hab halt nen dicken Kopf :bounce1: @Kiar das erscheint mir unlogisch! Wenn ichs unter private mache, dann kann doch Klasse1 auf keinen Fall drauf zugreifen...sont wärs ja nicht private ! Ich will Konstanten die nicht extra initialisiert werden müssen, zumindest nicht in der create-methode |
Re: Konstanten in einer Klasse global definieren
Moin Minz,
Zitat:
Da wirst Du Dir wohl eine Erweiterung für den Compiler schreiben müssen. ;-) |
Re: Konstanten in einer Klasse global definieren
Mist :mrgreen:
wo krieg ich diesen Smiley mit roten Kopf und der Wand her? |
Re: Konstanten in einer Klasse global definieren
Es ist sicher auch Speicherverschwendung, wenn jede Instanz der Klasse dieselben Konstanten beinhaltet.
Du könntest vielleicht eine Class-Function schreiben, welche die gewünschte Konstante liefert:
Code:
dann brauchst du noch nicht mal ne Instanz des Klasse.
class funtion klasse1.getIntegerValue:integer;
begin result:=101; end; cu waba |
Re: Konstanten in einer Klasse global definieren
Moin waba,
das muss keine Platzverschwendung sein, wenn der resultiernde Code die Konstanten so verwaltet, dass sie bei mehreren Instanzen einer Klasse nur einmal geladen, und erst beim zerstören der letzten Instanz ebenfalls freigegeben werden. |
Re: Konstanten in einer Klasse global definieren
Hallo Christian,
versteh ich nicht ganz, meinst Du so eine Art Object-Factory, welche die Instanzen verwaltet? Minz schrieb von Konstanten, deshalb ging ich davon aus das diese in jeder Instanz gleich sind, eben konstant. cu waba |
Re: Konstanten in einer Klasse global definieren
Moin waba,
war nur eine Idee, wie man Konstanten in Klassen implementieren könnte, ohne Platz zu verschwenden. Diese Idee würde ja auch nur dann funktionieren, wenn die Konstanten, wie der Name schon sagt, konstant, und somit in jeder Instanz gleich sind. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 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