Die Template-Klasse CBattribute stellt die Attribute von Sichten
dar. Der Template-Parameter ist entweder CBobjectName für atomare
Attribute, oder die Template-Klasse CBref für Attribute die
Referenzen auf weitere Objekte sind. Mit den Methoden getLabel
und getValue kann auf die Attributbezeichnung und den Attributwert
zugreifen. Bei den Vergleichsoperatoren werden Wert und Bezeichnung des
Attributs gemeinsam berücksichtigt, sofern dies möglich ist. Der Operator
< wird auf den entsprechenden Operator des Attributwerts abgebildet.
template<class T>
class CBattribute {
public:
/* Constructor */
CBattribute();
CBattribute(char* l, T* v);
CBattribute(CBterm* t);
CBattribute(const CBattribute<T>& a);
/* Destructor */
~CBattribute();
// Methods
char* getLabel();
T& getValue();
// Operators
CBattribute<T>& operator=(const CBattribute<T>& a);
bool operator==(CBattribute<T>& a):
bool operator==(const char* s);
bool operator<(CBattribute<T>& a);
bool operator<(const char* s);
private:
char* label;
T* value;
// ...
};