können Funktionen Arrays ausgeben
-
Hallo,
ist folgndes möglich:
string [4] test (int x, int y) {... }test soll also einen Array-of-string zurückgeben...
oder muss ihc da mit Pointern arbeiten (umständlich, weil ich in verschiedenen Klassen arbeite(Rechte etc...)
thx4help :xmas2:
-
Nein das geht nicht, aber du kannst einen std::vector zurückgeben.
-
Oder den Zeiger auf das erste Element.
-
Panke schrieb:
Oder den Zeiger auf das erste Element.
Und wie soll das funktionieren, wenn by-value zurückgegeben wird?

Das Einzige was man machen kann, ist, das Array in eine Struktur verpacken.
struct array_proxy { string value[4]; }; array_proxy test (int x, int y) { //... }Oder du verwendest halt einen entsprechenden Container, der das für dich bereits macht.
Eine andere Möglichkeit wäre, das Array als Parameter zu übergeben.
-
Er übergibt kein Array und will eins wiedererhalten. Ich glaube nicht, dass das per Value geschieht. Zumal das doch eh nur bei Parametern eine Rolle spielt, oder nicht?
-
Panke schrieb:
Er übergibt kein Array und will eins wiedererhalten. Ich glaube nicht, dass das per Value geschieht.
Es geht nicht um glauben, sondern um wissen. Und so wie die Funktion des OP momentan aussieht, wird das Array by-value zurückgegeben. Punkt. Was aber, wie schon mehrfach erwähnt, nicht funktioniert.
Und dass er das Array als Parameter übergibt, war ja nur als alternativer Vorschlag.void test(int x, int y, string (&result)[4]) { //... }Ist zwar nicht codeäquivalent, erfüllt letztendlich aber den gleichen Zweck.
-
der vector hilft mir schon weiter!!! ich kenne kein Feature, welches ich nicht mit einem Vector, aber mit einem Array implementieren kann!!
thx
-
keinplan!! schrieb:
der vector hilft mir schon weiter!!! ich kenne kein Feature, welches ich nicht mit einem Vector, aber mit einem Array implementieren kann!!
thx
Das liegt daran, dass der Vector ein Array ist, nur heißt die Klasse eben Vector und nicht Array (kommt höchstwarscheinlich aus der Mathematik da man dort Vektoren hat).
-
User--- schrieb:
Das liegt daran, dass der Vector ein Array ist
Naja, nicht ganz. std::vector ist vielmehr eine Sequenz. boost::array kommt den eingebauten Arrays da schon deutlich näher.
-
Es geht nicht um glauben, sondern um wissen. Und so wie die Funktion des OP momentan aussieht, wird das Array by-value zurückgegeben. Punkt.
Ist ja gut, ich verschwinde wieder im Religionsunterricht
