000
01.09.2003, 14:14 Uhr
Tiffi
|
Hallo, ich habe ein kleines Problem mit abgeleiteten Klassen und Kontainern (vector). Ich habe verschiedene Elemente (4-Ecke, 3-Ecke, Linien, etc) und will für diese eine Basisklasse (ELEM) definieren. Für alle Elemente will ich zum Beispiel eine Funktion definieren, die mir die Zahl der Ecken zurückgibt. Also
C++: |
class ELEM { double ecken(){return 0}; //Standartwert ...};
|
Davon leite ich dann Klassen für die speziellen Elemente ab (QUAD, TRI,...). Also zum Beispiel
C++: |
class QUAD:public ELEM{ double ecken(){return 4}; ...};
|
Dann will ich alle Elemente (i.A. unterschiedliche Elemente), die ich während einer Berechnung benutze, in einem Kontainer zusammenfassen. Also
C++: |
vector<ELEM> elemente;
|
Wenn ich jetzt auf die Funktion ecken() eines Elements im Kontainer zugreife, erhalte ich als Rückgabe immer den Standartwert (0) und nicht den richtigen Wert (bei QUAD 4). Eine abstrakte Klasse für ELEM ist auch nicht möglich, da ich ja dann mit ELEM keinen vector mehr bilden kann. Kann mir jemand einen Tipp geben? Grüßle Tiffi |