Pointer oder nicht?
-
Pointer machen mich immer so unschlüssig

Ich plane einen Vector voller selbst definierter Klassen "Item", die hat grob gesehen nur nen String, die Frage, die sich mir stellt, was ist dazu besser geeignet, vector<Item> oder vector<Item *>, generell ist dazu zu sagen, dass dieser Vector die einzige Stelle am ende sein sollte, die die Items kennt. Da wäre defakto die Pointerlose version angebracht, oder übersehe ich ein wichtiges Detail?
Gerade kommt mir noch die Frage auf, sollte Item als const übergeben werden obwohl Item ja eine Var drin hat, die man verändern möchte.
Sind meine Gedanken schlüssig?
-
Ich würde in diesem Fall einen vector<Item> (ohne Pointer) verwenden - solange nichts die Verwendung von Pointern notwendig macht, bereiten sie mehr Ärger als die Vorteile bieten (Speicherverwaltung, Besitzzuordnung etc).
@const: Wenn du einen Member deines Objektes ändern willst, kannst du es nicht const definieren (sowas vererbt sich auf alle Member) - außer er wäre mutable. (und mutable solltest du sehr sparsam verwenden - und möglichst unsichtbar für die Außenwelt)
-
Gut, so ähnlich hab ich es mir gedacht (bis auf das mutable
)Danke!
-
Seikilos schrieb:
(bis auf das mutable
)Was hast du dir denn zu mutable gedacht? (nur aus Neugierde)
-
Ich habe garnicht an mutable gedacht, dass wars

-
Mußt du auch nicht - wenn du dein Objekt (oder Teile davon) ändern willst, nimmst du einfach ein nicht-konstantes Objekt.
(und mutable habe ich nur der Vollständigkeit erwähnt - es gibt hier ***, die sich an solchen Kleinigkeiten aufhängen können :D)