CBview ist die Oberklasse für die generierten Klassen, die die Objekte einer Sicht enthalten. Die Operatoren sind in dieser Klasse implementiert und müssen daher nicht mehr in den generierten Klassen definiert werden. Der Konstruktor erzeugt aus einem CBterm-Objekt den eindeutigen Objektnamen, der in der Objektvariable objectName gespeichert wird. Die Operatoren werden daher auf den Objektnamen angewandt.
Die Methoden addReference und removeReference garantieren zusammen mit der Template-Klasse CBref, daßkeine Objekte gelöscht werden, auf die noch Referenzen verweisen. Dafür erhöhen bzw. verringern sie den Zähler refcount.
class CBview {
public:
// Constructor/Destructor
CBview(const CBterm* t);
CBview(const CBview& v);
virtual ~CBview();
// Copy operator
CBview& operator=(const CBview& v);
// Compare
virtual bool operator==(const CBview&) const;
virtual bool operator==(const char* ) const;
virtual bool operator<(const CBview&) const;
virtual bool operator<(const char*) const;
// Cast-operators
virtual operator char*() const;
virtual operator int() const;
virtual operator double() const;
void addReference();
void removeReference();
private:
CBobjectName objectName;
int refcount;
// ...
};