Italia
Foro

Altri metodi propri oggetti Eigenschaften trasferimento

 

Nico
Madysa
Und schon wieder ich ...

Ich weiß nicht, ob ich an mir oder an XProfan zweifeln soll.
Folgende Situation: Ich habe zwei Objekte verschiedener Klassen. Das Objekt Du# erhält das Objekt Ich# als Parameter und ruft dessen Methode auf. Dabei übergibt Du# der Methode von Ich# eine eigene Eigenschaft als Parameter.
KompilierenMarkierenSeparieren
 {$iq}
Class Nummereins = a&,GetA@

proc Nummereins.GetA

    parameters einezahl&
    return .a& * einezahl&

endproc

Class Derandere = #b&,Multi@

proc Derandere.Multi

    parameters Objekt#
    .b& = 14
    return Objekt#.GetA(.b&)

endproc

declare Ich#,Du#
Dim Ich#,Nummereins
Dim Du#,Derandere
Ich#.a& = 3
cls
print Du#.Multi(Ich#)
waitinput
Dispose Ich#,Du#
end

Mein Problem: Sobald die Eigenschaft, die dem Parameter-Objekt trasferimento wird, privat ist (so, wie es sich bei ordentlicher OOP gehört), knallt es. (Kein Zugriff auf geschützte Eigenschaft) Ich vermute, dass XProfan Probleme mit irgend einer Form von Stack hat. Gibt es eine Möglichkeit, das Problem zu umgehen oder zu beheben?

Saluto,

Nico
 
Nico Madysa
19.06.2010  
 




RGH
Ciao,

Dein Problem hängt damit zusammen, dass XProfan den Parameter .b& erst in der Zeile "Parameters" auswertet ... und da ist der Zugriff auf geschützte Eigenschaften eines anderen Objektes nicht possibile.
Das kannst Du umgehen, indem Du eine lokale Variable verwendest, die Du als Parameter übergibst.

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
20.06.2010  
 




Nico
Madysa
Ja, so was habe ich vermutet. Habe auch gerade festgestellt, dass es auch funktioniert, wenn man eine (öffentliche) Gettermethode übergibt.
KompilierenMarkierenSeparieren
Class Nummereins = a&,GetA@

proc Nummereins.GetA

    parameters einezahl&
    return .a& * einezahl&

endproc

Class Derandere = #b&,GetB@,Multi@

proc Derandere.GetB

    return .b&

endproc

proc Derandere.Multi

    parameters Objekt#
    .b& = 14
    return Objekt#.GetA(.GetB())

endproc

declare Ich#,Du#
Dim Ich#,Nummereins
Dim Du#,Derandere
Ich#.a& = 3
cls
print Du#.Multi(Ich#)
waitinput
Dispose Ich#,Du#
end

Danke per die schnelle Antwort, Roland.

Saluto,

Nico
 
Nico Madysa
20.06.2010  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.351 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema hat 2 subscriber:

Nico Madysa (2x)
RGH (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie