I
@StefanD
Hi Stefan, ich glaube du hast mein Problem wirklich nicht verstanden (nicht bös gemeint !!) Weisst du die Variablen a - h sind in der Engine gespeichert und müssen an jedes Objekt weitergegeben werden. Nur sind dies eben kritische Adressen, welche, wenn man sie verändert, wirklich das System permanent beschädigen können, da DirectX eine LowLevel API ist und teilweise den Speicherschutz von Windows umgeht. Es ebenfalls notwendig, dass der Benutzer (derjenige, der mit der Engine ein Spiel schreiben soll) diese Variablen niemals zu sehen bekommt zwecks vollständiger Kapselung der DirectX - API. Die hat den Zweck, dass Spiele die mit dieser Engie geschrieben wurde, immer noch tadelfrei laufen, wenn die Engine z.B. für OpenGl reprogrammiert wurde.
Wegen dem this operator
Wenn ich einen Quellcode liese, sind die Schlüsselwörter eine extreme Hilfe, mich innerhalb von Codes zu orientieren. Ich habs mal eine Zeitlang so gemacht, wie du beschriben hast, doch ich merkte schnell, dass ich auf diese Weise sehr viel mehr Mühe hatte, den Code zu lesen. Ich könnte z.B. nicht ohne Synthax - hervorhebung programmieren, da wäre ich verloren !!
Gruss Ishildur
P.S.
Hier noch mal ein Fallbeispiel wie der Benutzer die kritischen Werte manipulieren könnte
// ----------------------------- entry - point to the application -----------------------------
int main(){
Engine engine;
// it is absolutly important, not to manipulate these critical values, otherwise the application will crash and possibly permanently damage the system
Object obj(0x35 /* and out !!! */,engine.getB(),engine.getC(),engine.getD(),engine.getE(),engine.getF(),engine.getG(),engine.getH());
return 0;
// have a nice day by beeing forced to reinstall your windows
}// --------------------------------------------------------------------------------------------
[ Dieser Beitrag wurde am 07.06.2003 um 17:29 Uhr von Ishildur editiert. ]