Ich
Suche noch einen Link zu: Wie erweitere ich zur Laufzeit ein Objekt/Klasse um Eigenschaften?
In meinem
Buch kommt OOP leider nicht vor.
Alles sonst habe ich so weit gefunden, was man im Quelltext (Klasse) anlegt, einbindet.
Suche noch eine Beschreibung, wie man eben, wenn das Programm läuft, einer Klasse oder Struktur eine Eigenschaft (also z.B. einen Wert oder Zeichenkette mit Bezeichner) hinzufügt.
Ich bezweifle, das sowas wie: meinObjekt.Name2 = "Müller"; einfach so funktionieren wird, wenn Name2 nicht schon in meinObjekt existiert hat.
Aber vielleicht funktionbiert es ja auch mit: meinObjekt.Name2 = new String("Müller"); ???
erweitern von Klassen durch weitere Variablen oder Methoden zur Laufzeit ist meines Wissens nicht möglich.
Diese müssen schon bei der Deklaration fest stehen, genau wie man keine zusätzlichen Zeilen zur Laufzeit in eine Funktion schreiben kann, keine array-Größen erhöhen/verlängern kann und keine zusätzlichen undeklarierten Variablen nachträglich zur Laufzeit einfügen kann, weder global noch lokal in Funktionen oder Strukturen.
Stelle dir ein Objekt vereinfacht als C-Struktur vor, nur sind jetzt zusätzlich zu Variablen jetzt auch noch Funktionen enthalten.
meinObjekt.Name2 = "Müller";
geht also nur, wenn ein Objekt
class foo{}
bereits per Deklaration eine Variable enthält
public:
String Name2 ;
dann geht nach Instanziierung per
foo meinObjekt;
meinObjekt.Name2 = "Müller";
PS:
es ist analog zu Strukturen:
Code:
typedef struct
{
String Name1, Name2;
} foo;
foo meineStruct;
meineStruct.Name2= "Müller";
auch hier kann man zur Laufzeit keiner Variablen Name3 etwas zuweisen.
Lesezeichen