Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
chutullu
Anmeldungsdatum: 18.10.2005 Beiträge: 77
|
Verfasst am: 17.03.2007, 16:18 Titel: Functions-Pointer in einer Typdeclaration als Pseudomethode |
|
|
Hi Forum,
noch mal ne' kleine Frage zum Thema Pointer's und zwar verwende ich in diesem Beispiel Pointer um auf eine Function zu verweise, was im ersten Teil auch klappt und das richtige Ergebnis wird ausgegeben.
Im weiteren Kontext möchte ich Zeiger auf Prozeduren verwenden um in einer Typedeclaration "künstliche Methode" zu erzeugen um eine Objectähnliche Struktur zu erhalten. Das Beispiel läuft zwar, jedoch ist das Ergebnis nicht richtig. Hat jemand schon mal so etwas gemacht oder sieht einen Fehler ?
Im Voraus danke.
Beispiel :
Code: | Type irgendwas
zahlen(1 To 100) As Integer
anz As Integer
sum As Integer
End Type
Sub addall (ByRef all As irgendwas)
For a=1 To all.anz
all.sum += all.zahlen(a)
Next
End Sub
Type doAdd As Sub (ByRef As irgendwas)
Dim summierer As doAdd = @addall
Dim Test As irgendwas
Dim zeiger As doAdd ptr = @summierer
Test.anz = 10
For a=1 To Test.anz
Test.zahlen(a) = a
Next a
(*zeiger)(Test)
Print Test.sum
' **** ab hier gibts Probleme ****
Type tt
_data As irgendwas
ssum As doAdd ptr
End Type
Dim weiter As tt
weiter.ssum = @summierer
weiter._data.anz = 10
For a=1 To tt._data.anz
weiter._data.zahlen(a) = a
Next
(*weiter.ssum)(weiter._data)
Print weiter._data.sum
Sleep |
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 17.03.2007, 16:23 Titel: |
|
|
beim überfliegen habe ich gesehen das Du
Code: |
For a=1 To tt._data.anz |
keine variable mit den Namen tt definiert hast (tt=weiter?) _________________
 |
|
Nach oben |
|
 |
chutullu
Anmeldungsdatum: 18.10.2005 Beiträge: 77
|
Verfasst am: 17.03.2007, 16:41 Titel: |
|
|
Danke,
habe ich glatt übersehen. Jetzt geht es. |
|
Nach oben |
|
 |
|