Hallo Sandra,
ich habe eine Klasse die als Attribut (name: value) ein Array
von std::bitset enthält.
Das heisst dann iirc ‚compound object‘ (Klasse in der Klasse).
Dafür möchte ich eine get-Methode schreiben (also getValue),
aber ich bin mir bei der Syntax nicht sicher. Kann man in
C++ überhaupt ein Array zurückgeben?
Zurückgeben kann man alles,
std::bitset getBitset() const
{
return myBitset;
}
allerdings wird bei dieser Operation das
gesamte Bitset ein oder mehrfach Wert für
Wert kopiert – je nach Art und Weise des
Aufrufs (ist das erwünscht?).
Falls nein, dann wohl eher einen Pointer?
Eher nicht. Das nennt sich dann in C++ „Referenz“.
Du übergibst der Methode getxxx() dann eine
„Referenz“ auf einen bereits vorhandenen Bitset,
in welchen dann die neuen Werte geschrieben werden.
bool getBitset(std::bitset& bs) const
{
bs = myBitset;
}
Wie lege ich den Pointer innerhalb der Methode an?
Ein „Pointer“ ist lediglich eine Variable, in der
die aktuelle Adresse des gewünschten Objektes steht.
Eine Referenz ist im Grunde dasselbe (s.o.), aber ohne
die „Pointerschreibweise“. Man kann also immer mit
dem Objekt selber „hantieren“ (manchmal über 100 Megabyte),
oder nur mit dessen Adresse (immer 32 bit -> und neuerdings
manchmal 64 bit)
PS: Bin eigentlich eher Java-Programmierer und stehe mit
Pointern auf Kriegsfuß!
Ich fahre eigentlich gern schnell Auto, stehe aber
mit Strahlturbinen auf Kriegsfuß!
Schreib doch bitte mal einen Ausschnitt aus Deinem
konkrreten Problem hier hin, dann kann man
vielleicht mehr sagen …
Grüße
CMБ