Hauptseite | Liste aller Namensbereiche | Klassenhierarchie | Alphabetische Liste | Auflistung der Klassen | Verzeichnisse | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente

SymOperator Klassenreferenz

Basisklasse fuer die Operatoren. Mehr ...

#include <symbols.h>

Klassendiagramm für SymOperator:

Symbol OpAdd OpDiv OpGcd OpLcm OpMod OpMul OpNcr OpNpr OpPow OpPr OpRoot OpRp OpSub Aufstellung aller Elemente

Öffentliche Methoden

 SymOperator (string op="", int prio=2, string hlp="no help available")
int getPrio () const
void processCommon ()
 Prozessiert einen eingegebenen Operator.
void processAddSub ()
 Prozessiert "+" und "-".
SymOperatorcheckConstMode (const SymOperator *lastSymP) const
virtual Number calcVal (const Number &a, const Number &b)=0

Geschützte Attribute

int mPrio

Ausführliche Beschreibung

Basisklasse fuer die Operatoren.


Beschreibung der Konstruktoren und Destruktoren

SymOperator::SymOperator string  op = "",
int  prio = 2,
string  hlp = "no help available"
[inline, explicit]
 


Dokumentation der Elementfunktionen

virtual Number SymOperator::calcVal const Number a,
const Number b
[pure virtual]
 

Implementiert in OpPow, OpRoot, OpMod, OpGcd, OpLcm, OpAdd, OpSub, OpMul, OpDiv, OpRp, OpPr, OpNpr und OpNcr.

SymOperator* SymOperator::checkConstMode const SymOperator lastSymP  )  const
 

int SymOperator::getPrio  )  const [inline]
 

void SymOperator::processAddSub  ) 
 

Prozessiert "+" und "-".

Hier ist ein Sonderfall implementiert: Wenn unmittelbar vor Eingabe des Operators eine Prozentrechnung ausgefuehrt wurde, wird sofort ein Aufschlag oder Abschlag berechnet. Beispiel: "100*3%+" ergibt sofort 103, ohne dass "=" gedrueckt werden muesste. Nach dem "%" steht im Zahlen-Stack nur die 3. In AcPrc::process() wurde in mPrcWhole die 100 gespeichert. Diese beiden Operanden werden in der richtigen Reihenfolge auf den Stack gebracht, "+" oder "-" auf den Symbol- Stack und OthEqu::process() ausgefuehrt.

void SymOperator::processCommon  ) 
 

Prozessiert einen eingegebenen Operator.

Wenn der Symbolstack leer ist, wird der Operator einfach auf den Stack gelegt. Wenn nicht, muss erst ueberprueft werden, ob der vorherige Operator hoehere oder gleiche Prioritaet hat; falls ja, wird diese Operation zuerst ausgefuehrt; daraufhin ist ggf. ein neuer Operator oben, mit dem der Vergleich rekursiv erneut durchgefuehrt wird.


Dokumentation der Datenelemente

int SymOperator::mPrio [protected]
 


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Mon Oct 10 19:54:32 2005 für Almetare von  doxygen 1.4.1