<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Struct als Funktionsrückgabewert]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe nach diesem Beispiel:</p>
<p><a href="http://bytes.com/topic/c/answers/530470-can-functions-return-struct" rel="nofollow">http://bytes.com/topic/c/answers/530470-can-functions-return-struct</a></p>
<p>eine Funktion gebastelt die ein Struct zurückliefert.</p>
<p>Allerdings ist es mir peinlicherweise schleierhaft wie ich die einzelnen Elemente nun in der empfangenden Funktion aufrufe:</p>
<p><a href="http://codepad.org/aaYq1ZC5" rel="nofollow">http://codepad.org/aaYq1ZC5</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253837/struct-als-funktionsrückgabewert</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 11:48:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253837.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Nov 2009 15:50:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sat, 07 Nov 2009 15:50:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe nach diesem Beispiel:</p>
<p><a href="http://bytes.com/topic/c/answers/530470-can-functions-return-struct" rel="nofollow">http://bytes.com/topic/c/answers/530470-can-functions-return-struct</a></p>
<p>eine Funktion gebastelt die ein Struct zurückliefert.</p>
<p>Allerdings ist es mir peinlicherweise schleierhaft wie ich die einzelnen Elemente nun in der empfangenden Funktion aufrufe:</p>
<p><a href="http://codepad.org/aaYq1ZC5" rel="nofollow">http://codepad.org/aaYq1ZC5</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804845</guid><dc:creator><![CDATA[serbud]]></dc:creator><pubDate>Sat, 07 Nov 2009 15:50:47 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sat, 07 Nov 2009 15:59:24 GMT]]></title><description><![CDATA[<p>Du brauchst in C++ kein typedef für deine Struct.<br />
Davon abgesehen funktioniert dein erste Version.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804848</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Sat, 07 Nov 2009 15:59:24 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sat, 07 Nov 2009 16:34:24 GMT]]></title><description><![CDATA[<p>Auch wenn es vorbildlich ist, dass du Code auf codepad postest, ist es bei kleineren Sachen eher hinderlich. Hier kannst du gut ein paar duzend Zeilen posten. Und alles, was in die Hunderter geht wird eh nur selten gelesen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Deine Syntax erinnert eher an C, als an C++. Für eine C++ Version schaue hier:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

struct foo
{
  int a;
  int b;
};

const foo bar ()
{
  foo f;
  f.a = 2;
  f.b = 5;

  return f;
}

int main ()
{
  foo g;
  g.a = 3;

  std::cout &lt;&lt; bar ().a
}
</code></pre>
<p>Das sollte wie erwartet funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804858</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Nov 2009 16:34:24 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sat, 07 Nov 2009 17:56:43 GMT]]></title><description><![CDATA[<p>Sowhl mit meiner als auch mit der letzen genannten Methode wird blöderweise mit:</p>
<pre><code>std::cout &lt;&lt; bar ().a
</code></pre>
<p>die komplette Funktion bar() aufgerufen. Das führt zu sehr seltsamen Ergebnissen zur Laufzeit, wie man sich sicher denken kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804888</guid><dc:creator><![CDATA[serbud]]></dc:creator><pubDate>Sat, 07 Nov 2009 17:56:43 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sat, 07 Nov 2009 18:15:03 GMT]]></title><description><![CDATA[<p>wäre dir lieber, wenn bar() nur teilweise aufgerufen würde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804893</guid><dc:creator><![CDATA[hoy hoschi]]></dc:creator><pubDate>Sat, 07 Nov 2009 18:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sat, 07 Nov 2009 18:23:57 GMT]]></title><description><![CDATA[<p>Nein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich möchte versuchen es besser zu formulieren:</p>
<p>Innerhalb einer Funktion wird der Nutzer mehrfach dazu aufgefordert eine Eingabe zu tätigen. Aufgrund der ergebnisse der Eingabe werden unterschiedliche Funktionen aufgerufen. Um die Übersichtlichkeit zu wahren möchte ich die Funktionen jeweils in einem eigenen Block und innerhalb einer headerdatei schreiben. Da nun aber die zweite Funktion 2 oder mehr werte der ersten benötigt, müssen diese Werte zurückgegeben werden:</p>
<pre><code class="language-cpp">struct Foobar
{
int a, b, c ;
};

Foobar Funktion_1
{
tuetwas();
tuenochmehr();

Foobar Nutzerwerte ;

Nutzerwerte.a = 5 ;
Nutzerwerte.b = 1 ;

return Nutzerwerte ;
}

void Funktion_2
{
cout &lt;&lt; Nutzerwerte.a ; // Hier soll nun 5 ausgegeben werden,
// stattdessen jedoch startet wie erwartet 
//die Funktion 1 von Anfang an, also auch
// mit tuetwas() und tuenochmehr(). 
//Das ist aber unerwünscht, ich benötige lediglich die Nutzerwerte.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1804895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804895</guid><dc:creator><![CDATA[serbud]]></dc:creator><pubDate>Sat, 07 Nov 2009 18:23:57 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sat, 07 Nov 2009 18:28:08 GMT]]></title><description><![CDATA[<p>Übergib doch die Struktur als Parmeter ( Referenz ):</p>
<pre><code class="language-cpp">struct Puuh
{
	int a,b,c;
};

void enter_values ( struct Puuh&amp; puh )
{
	puh.a = puh.b = puh.c = 1; // Simulierte Benutzereingabe ;)
}

int main()
{
	struct Puuh myPuh = {0};
	enter_values ( myPuh );
	cout &lt;&lt; myPuh.a &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Gruß,<br />
B.B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804901</guid><dc:creator><![CDATA[Big Brother]]></dc:creator><pubDate>Sat, 07 Nov 2009 18:28:08 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sat, 07 Nov 2009 18:50:22 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">struct Foobar
{
int a, b, c ;
};

Foobar Funktion_1
{
tuetwas();
tuenochmehr();

Foobar Nutzerwerte ;

Nutzerwerte.a = 5 ;
Nutzerwerte.b = 1 ;

return Nutzerwerte ;
}

void Funktion_2
{
cout &lt;&lt; Nutzerwerte.a ; // Hier soll nun 5 ausgegeben werden,
// stattdessen jedoch startet wie erwartet
//die Funktion 1 von Anfang an, also auch
// mit tuetwas() und tuenochmehr().
//Das ist aber unerwünscht, ich benötige lediglich die Nutzerwerte.
</code></pre>
</blockquote>
<p>Wie wärs dann damit:</p>
<pre><code class="language-cpp">struct Foobar
{
int a, b, c ;
};

Foobar Funktion_1
{
tuetwas();
tuenochmehr();

return GetNutzerwerte();
}

Foobar GetNutzerwerte()
{
   Foobar Nutzerwerte ;

   Nutzerwerte.a = 5 ;
   Nutzerwerte.b = 1 ;

   return Nutzerwerte ;
}
void Funktion_2
{
Funktion_1(); //inklusiv tuwas() und tunochmehr()
GetNutzerwerte(); //Ohne tuwas() und tunochmehr()
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1804907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804907</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Sat, 07 Nov 2009 18:50:22 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sun, 08 Nov 2009 01:49:34 GMT]]></title><description><![CDATA[<p>Ich sehe schon, es wird nicht ganz klar wo das Problem liegt.</p>
<p>Die erste Funktion enthält zum Beispiel die Information dass im Lager 5 Schränke, 2 Betten und 7 Tische stehen.</p>
<p>Die zweite Funktion gibt eine Übersicht aus:</p>
<pre><code>Vorhanden sind:
Schränke (5)
Betten (2)
Tische (7)
</code></pre>
<p>Diese Informationen muss ihr von der ersten Funktion natürlich übergeben werden.</p>
<p>Da die erste Funktion aber ausgibt:</p>
<pre><code>Bitte Anzahl der Schränke eingeben:#
&gt;&gt; 
Bitte anzahl der Betten eingeben:#
&gt;&gt;
//[...]
</code></pre>
<p>macht die zweite Funktion beim Auruf des Rückgabewertes folgendes:</p>
<pre><code>Bitte Anzahl der Schränke eingeben:#
&gt;&gt; 
Bitte anzahl der Betten eingeben:#
&gt;&gt;
//[...]
Es sind vorhanden:
5 Schränke
//[...]
</code></pre>
<p>Ich dachte nun an eine Art Funktionsvererbung, musste jedoch lesen dass dies nicht möglich ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805005</guid><dc:creator><![CDATA[serbud]]></dc:creator><pubDate>Sun, 08 Nov 2009 01:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Struct als Funktionsrückgabewert on Sun, 08 Nov 2009 07:28:06 GMT]]></title><description><![CDATA[<p>serbud schrieb:</p>
<blockquote>
<p>Ich sehe schon, es wird nicht ganz klar wo das Problem liegt.</p>
<p>Die erste Funktion enthält zum Beispiel die Information dass im Lager 5 Schränke, 2 Betten und 7 Tische stehen.</p>
</blockquote>
<p>Eine Funktion allein kann keine Informationen enthalten, nur verarbeiten (naja, statische Variablen in der Funktion geht schon, aber zugänglich sind die von außen nicht).</p>
<blockquote>
<p>Die zweite Funktion gibt eine Übersicht aus:</p>
<pre><code>Vorhanden sind:
Schränke (5)
Betten (2)
Tische (7)
</code></pre>
<p>Diese Informationen muss ihr von der ersten Funktion natürlich übergeben werden.</p>
</blockquote>
<p>Dann tu das doch! Deine Funktionen sind momentan alle Parameterlos. Gib ihnen einen Parameter vom Typ &quot;Foobar&quot; (am besten ne Referenz).<br />
Oder noch besser: Löse dich von diesem C-Stil und schreib dir ne Klasse &quot;Lager&quot; die den Lagerbestand speichert. Dann noch Funktionen zum Einlesen und Ausgeben als Memberfunktionen der Klasse, und du postest hier auch endlich im richtigen Forum...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805012</guid><dc:creator><![CDATA[FahrBoob]]></dc:creator><pubDate>Sun, 08 Nov 2009 07:28:06 GMT</pubDate></item></channel></rss>