<?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[&amp;quot;Temporäre Strukturen&amp;quot;]]></title><description><![CDATA[<p>Hi :schland:</p>
<p>ich habe folgende Struktur für einen Vektor:</p>
<pre><code class="language-cpp">struct Vector 
{ 
   int x, y;
};
</code></pre>
<p>Und die möchte ich für Funktionen benutzen, die einen Vektor als Parameter erwartet:</p>
<pre><code class="language-cpp">Vector AddVector(Vector vec1, Vector vec2);
</code></pre>
<p>Wie kann ich der Funktion jetzt am elegantesten &quot;temporäre Vektoren&quot; übergeben? Vector ist leider nur eine struct ohne Konstruktur, wenn dem nicht so wäre, könnte ich ja einfach...</p>
<pre><code class="language-cpp">Vector result = AddVector(Vector(1, 2), Vector(5, 4));
</code></pre>
<p>...schreiben. Da ich aber auf die Implementierung nicht zugreifen kann, muss ich eine andere Lösung finden.</p>
<p>Mögliche Lösungen wären...</p>
<ul>
<li>Eine kleine Wrapper-Klasse mit Konvertierungoperator zu Vector</li>
<li>Eine Funktion, die mir einen Vector zurückliefert (als Ersatz für den Konstruktor)</li>
</ul>
<p>Welche Möglichkeit sollte ich bevorzugen, bzw. hättet ihr eine bessere Lösung, oder sogar eine mir unbekannte Kurzschreibweise, die mein Problem lösen könnte?</p>
<p>Danke &amp; viele Grüße.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/215336/quot-temporäre-strukturen-quot</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 16:49:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/215336.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Jun 2008 16:55:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;Temporäre Strukturen&amp;quot; on Mon, 09 Jun 2008 16:55:27 GMT]]></title><description><![CDATA[<p>Hi :schland:</p>
<p>ich habe folgende Struktur für einen Vektor:</p>
<pre><code class="language-cpp">struct Vector 
{ 
   int x, y;
};
</code></pre>
<p>Und die möchte ich für Funktionen benutzen, die einen Vektor als Parameter erwartet:</p>
<pre><code class="language-cpp">Vector AddVector(Vector vec1, Vector vec2);
</code></pre>
<p>Wie kann ich der Funktion jetzt am elegantesten &quot;temporäre Vektoren&quot; übergeben? Vector ist leider nur eine struct ohne Konstruktur, wenn dem nicht so wäre, könnte ich ja einfach...</p>
<pre><code class="language-cpp">Vector result = AddVector(Vector(1, 2), Vector(5, 4));
</code></pre>
<p>...schreiben. Da ich aber auf die Implementierung nicht zugreifen kann, muss ich eine andere Lösung finden.</p>
<p>Mögliche Lösungen wären...</p>
<ul>
<li>Eine kleine Wrapper-Klasse mit Konvertierungoperator zu Vector</li>
<li>Eine Funktion, die mir einen Vector zurückliefert (als Ersatz für den Konstruktor)</li>
</ul>
<p>Welche Möglichkeit sollte ich bevorzugen, bzw. hättet ihr eine bessere Lösung, oder sogar eine mir unbekannte Kurzschreibweise, die mein Problem lösen könnte?</p>
<p>Danke &amp; viele Grüße.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1525873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1525873</guid><dc:creator><![CDATA[:schland:]]></dc:creator><pubDate>Mon, 09 Jun 2008 16:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Temporäre Strukturen&amp;quot; on Mon, 09 Jun 2008 17:06:15 GMT]]></title><description><![CDATA[<p>Also wenn du die Vektor Struktur wirklich nich verändern kannst, dann kommt es drauf an, was du alles willst.</p>
<p>Willst du nur diese Strukturen erstellen? Erstelle dir eine Funktion.<br />
Willst du noch mehr machen mit den Vektoren, Addition und sonstiges halt, dann erstelle dir einen eigenen Vektor, welcher konvertiert werden kann.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1525886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1525886</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 09 Jun 2008 17:06:15 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Temporäre Strukturen&amp;quot; on Mon, 09 Jun 2008 17:22:19 GMT]]></title><description><![CDATA[<p>Ganz spontan fiel mir da nur die Art Array zu initialisieren ein (geht auch bei Strukturen)<br />
Und union.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

struct SVector2
{
	int x,y;
};

//1. 
SVector2 MacheVektor1(int x,int y)
{
	SVector2 Temp={x,y}; // &lt;- Erstaz für den Konstruktor
	return(Temp);
}

//2.
SVector2 MacheVektor2(int x,int y)
{
	union Conversion // &lt;- union, Speicher wird von v und x,y geteilt (= der selbe Speicherbereich)
	{
		SVector2 v;
		struct
		{
			int x,y;
		};
	} conv;

	conv.x=x;
	conv.y=y;
	return(conv.v);
}

int main()
{
	SVector2 v=MacheVektor1(1,1);
	cout&lt;&lt;&quot;\nX=&quot;&lt;&lt;v.x
		&lt;&lt;&quot;\nY=&quot;&lt;&lt;v.y&lt;&lt;endl;

	v=MacheVektor2(2,2);
	cout&lt;&lt;&quot;\nX=&quot;&lt;&lt;v.x
		&lt;&lt;&quot;\nY=&quot;&lt;&lt;v.y&lt;&lt;endl;

	return(0);
}
</code></pre>
<p>:schland: :schland: :schland: :schland: :schland: :schland: :schland: :schland: :schland: Ich vermisse das Ball-Icon <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1525910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1525910</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 09 Jun 2008 17:22:19 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Temporäre Strukturen&amp;quot; on Mon, 09 Jun 2008 17:35:58 GMT]]></title><description><![CDATA[<p>Anonyme structs gibt es nicht in Standard C++. Abgesehen davon sehe ich nicht, was MacheVektor2 anders macht als MacheVektor1. Funktion-die-Vector-zurückgibt ist die richtige Lösung. Der Unterschied zu einem direkten Konstruktoraufruf ist ohnehin minimal. Eine benannte Funktion gibt zwar prinzipiell eine Kopie zurück, die Kopieraktion kann und wird aber trivial von jedem modernen Compiler eliminiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1525922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1525922</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 09 Jun 2008 17:35:58 GMT</pubDate></item></channel></rss>