Klasse CX_FORMULA - Übersicht
Ein Formel-Objekt enthält einen arithmetischen Ausdruck in der externen, vom Menschen lesbaren Form und gleichzeitig eine interne Darstellung, die eine schnelle Auswertung der Ausdrücke erlaubt.
Die Operanden im Formelausdruck sind:
- Datenfelder der Objekte (auch dynamische Datenfelder), die durch einen Zugriffsausdruck
beschrieben werden:
nT owner.credit
Sie sind die Variablen des Formelausdrucks.
- Ergebnisse des Aufrufs von Methoden der Objekte
interne Funktion: sin(x + y)
externe Funktion: face="Courier">::Foo(x, y) - Spezielle Funktionen der Klasse CX_FORMULA:
has(debit)
var(cyberEnterprise) - Konstanten
numerische Konstante: 3 4.26781
rechts links beidseitig
dimensionsbehaftete Konstante: 3.25$ 4cm 0.01[g/cm2]
Zeichenkette: "abcd"
implizit bekannte numerische Konstante: pi e
Enumerations-Konstante:
Interne Funktionen sind Memberfunktionen eines Objekts, das bei der Berechnung eines in
der Formel enthaltenen Terms entsteht (im Beispiel sin(x
+ y) erzeugt x + y erzeugt ein Objekt, dessen Funktion sin() aufgerufen wird).Zugriffsausdrücke und externe Funktionen beziehen sich auf bisher noch nicht näher bestimmte Objekte. Erst bei der Auswertung der Formel werden diesen Operanden Datenfelder bzw. Methoden bestimmter Objekte zugeordnet und damit ihr Wert festgelegt. Indem im ClassiX®-System bestimmte Objekte registriert werden (PlugSpace), entsteht ein aktueller Kontext, durch den die Zugriffsausdrücke und externen Funktionen (d.h. die Variablen der
Formel), eine konkrete Bedeutung erhalten.In diesem Beispiel sind x, y, ptr
und e Variable, die vor der Berechnung an Datenfelder der Objekte im PlugSpace gebunden werden. Das gleiche gilt für die Funktion Foo.
Operation x * pi entstehenden Objekts.
Die blauen Rechtecke sind die Objekte im PlugSpace; die Reihenfolge - durch abnehmende Farbintensität dargestellt - bestimmt, welche Variable mit welchem Objekt gebunden wird (das x im letzten Objekt bleibt verdeckt, solange das erste Objekt im PlugSpace verbleibt).
Numerische Konstanten sind 2.5, 0.5 und pi. Für Zeichenketten (Konstante "ABC") sind Vergleichsoperatoren und Verkettung definiert. Die Enumerationskonstante links gehört zu dem für die Variable e im System registrierten Wertevorrat. Funktion sin ist eine Memberfunktion des bei der
Die Operanden einer Formel sind immer Objekte. Die in einer Formel erlaubten
Operationen rufen entsprechende virtuelle Funktionen der Operanden auf, d.h. das Objekt bestimmt die Semantik der Operatoren:
- binäre Operatoren:
arithmetisch + - * / Zeichenketten + Vergleich = != < > <= >= logisch & | ^ Wertzuweisung :=
- unäre Operatoren:
Vorzeichenumkehr - Negation !
- mit if ... else ... können bedingte Ausdrücke gebildet werden
Im Formelausdruck können Kommentare in der in C++ üblichen Form untergebracht werden,
d.h. an beliebiger Stelle mit /* ... */ und am
Ende mit // ...