vector<> ableiten
-
hola leute
brauche eine erweiterung fuer den std::vector<>.
nun hab ich hier ja im forum schon paar mal gelesen, das das nicht so optimal sei,
weil der Dtor nicht virtuell ist.
wie sollte ich das dann am besten angehen?
trotzdem ableiten und gucken was passiert ?
externe klassen schreiben, die die benoetigte funktionalitaet am vector abbildet ?Meep Meep
-
Ich würde einen vector<> als Member meiner Klasse kapseln und alle Funktionen, die ich nicht selber neu-implementieren will, an ihn weiterreichen.
-
Als erstes vielleicht mal überlegen, ob Vector wirklich der geeignete Container für dein Problem ist.
http://www.linuxsoftware.co.nz/cppcontainers.html
Generell sollte man nicht von STL Containern ableiten, sondern wenn bedarf besteht diese Kapseln.
-
re
phlox81 schrieb:
Als erstes vielleicht mal überlegen, ob Vector wirklich der geeignete Container für dein Problem ist.
http://www.linuxsoftware.co.nz/cppcontainers.html
Generell sollte man nicht von STL Containern ableiten, sondern wenn bedarf besteht diese Kapseln.wieso unterstellst du mir das ich das nicht schon ueberprueft habe, ob es der geeigneteste container ist oder nicht? die frage war eindeutig ob ich ihn ableiten soll oder nicht.
@CStoll
hab ich mir auch schon gedacht. aber dann muss ich alle methoden usw. wieder weiterreichen. wollte mir den aufwand ansich eigendlich ersparen.
wollt mich da an einen alten thread von volkard halten. das mit HAT und IST.
wie waere es wenn ich von std::vector private ableiten wuerde?
muesste ich zwar auch per using alle methoden usw. weiterleiten, aber da komm ich sowieso net drum rum. ansich hab ich auch nicht vor mittels basisklassen-pointer darauf zu zugreifen. oder ist das auch nur mist?Meep Meep
-
Meep Meep schrieb:
re
phlox81 schrieb:
Als erstes vielleicht mal überlegen, ob Vector wirklich der geeignete Container für dein Problem ist.
http://www.linuxsoftware.co.nz/cppcontainers.html
Generell sollte man nicht von STL Containern ableiten, sondern wenn bedarf besteht diese Kapseln.wieso unterstellst du mir das ich das nicht schon ueberprueft habe, ob es der geeigneteste container ist oder nicht? die frage war eindeutig ob ich ihn ableiten soll oder nicht.
Wieso unterstellst du mir das ich dir das unterstelle?

Zu mal es ja nix schlimmes ist, da drauf hinzuweisen, das es evtl. eine Alternative gibt.
Immerhin äußerst du dich ja überhaupt nicht zu deiner Erweiterung, und warum du sie brauchst...
-
Ich mache das immer so, wenn ich es denn brauche, das ich private ableite. Denn private Ableitung ist gleichbedeutend mit "Implementiert mit". Ich habe z.B. mal eine Properties-Klasse programmiert, die im Prinzip eine Map mit zus. Logic bzw. zus. Schnittstellen ist. Also habe ich einfach private std::map abgeleitet. Natürlich muß man dann die nötigen Schnittstellen des Containers nach draussen geben. Das geht am einfachsten mit using.
Bin auch der Meinung, das ich das aus dem Scott Meyers Buch habe... kann ich mich aber auch täuschen.