gif gif up gif contents
Nächste Seite: D.2.3 CBsubView Vorige Seite: D.2.1 CBterm

D.2.2 CBview

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;
    // ...
};



Christoph Quix
31. Juli 1996