<?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[Problem mit Strukturen]]></title><description><![CDATA[<p>Ich habe das Problem, dass ich zwei Strukturen habe, und beide sollen jeweils eine Variable mit dem Datentyp der anderen Struktur haben.</p>
<p>So ungefähr:</p>
<pre><code>struct S1{
S2 Var;
};

struct S2{
S1 Var;
};
</code></pre>
<p>Nun gibts das Problem, dass der Compiler S2 oben ja noch gar nicht kennt, da S2 ja erst darunter definiert wird... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>wie kann ich das umgehen???</p>
<p>Ich hätte da die Idee, obs auch ne Deklaration für Strukturen gibt, (bestimmt!)<br />
aber bei mir hat google an der Stelle versagt...</p>
<p>Danke für Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/318715/problem-mit-strukturen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 06:56:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/318715.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 23 Jul 2013 20:20:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Strukturen on Tue, 23 Jul 2013 20:20:36 GMT]]></title><description><![CDATA[<p>Ich habe das Problem, dass ich zwei Strukturen habe, und beide sollen jeweils eine Variable mit dem Datentyp der anderen Struktur haben.</p>
<p>So ungefähr:</p>
<pre><code>struct S1{
S2 Var;
};

struct S2{
S1 Var;
};
</code></pre>
<p>Nun gibts das Problem, dass der Compiler S2 oben ja noch gar nicht kennt, da S2 ja erst darunter definiert wird... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>wie kann ich das umgehen???</p>
<p>Ich hätte da die Idee, obs auch ne Deklaration für Strukturen gibt, (bestimmt!)<br />
aber bei mir hat google an der Stelle versagt...</p>
<p>Danke für Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2340729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340729</guid><dc:creator><![CDATA[boomigaard]]></dc:creator><pubDate>Tue, 23 Jul 2013 20:20:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Strukturen on Tue, 23 Jul 2013 20:26:47 GMT]]></title><description><![CDATA[<p>Das geht nicht. Das wäre ja wie eine <a href="http://de.wikipedia.org/wiki/Matroschka" rel="nofollow">Matroschka</a>, die man unendlich oft auspacken kann... mindestens eine der beiden Strukturen darf die andere nur als Zeiger enthalten, und dann kannst du Vorwärtsdeklarationen verwenden:</p>
<pre><code class="language-cpp">struct S2;
struct S1 {
  S2 *s2;
};

struct S2 {
  S1 s1;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2340730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340730</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 23 Jul 2013 20:26:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Strukturen on Tue, 23 Jul 2013 20:27:21 GMT]]></title><description><![CDATA[<p>Das geht in der Form nicht, weil deine Structs so unendlich groß würden. Man kann eine Tasche nicht in sich selbst stopfen, auch (und ganz besonders) wenn man sie vorher in einem Koffer verstaut hat.</p>
<p>Was du machen kannst, ist Folgendes:</p>
<pre><code class="language-cpp">struct S2; // forward declaration

struct S1 {
  S1();
  ~S1();

  std::unique_ptr&lt;S2&gt; Var;
};

struct S2 {
  S2();
  ~S2();

  std::unique_ptr&lt;S1&gt; Var;
};

S1::S1() : Var(new S2) { }
S1::~S1() { }

S2::S2() : Var(new S1) { } // Aber...
S2::~S2() { }
</code></pre>
<p>So wird das kompilieren. Und abstürzen, wenn die Endlosschleife im Konstruktor den ganzen Speicher aufgefressen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2340732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340732</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Tue, 23 Jul 2013 20:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Strukturen on Tue, 23 Jul 2013 21:02:05 GMT]]></title><description><![CDATA[<p>Oh, ich merk grade, dass ich mal wieder etwas viel komplizierter lösen wollte, als es eigentlich ist:</p>
<pre><code>struct S1{

//Viiiiieeeele statische Member :D
};

struct S2{
void Greifezu();
};

void S2::Greifezu(){
//So wollte ichs Dummerweise lösen:
S2 Muh;
int Oink = Muh.Flubb;

//Viel einfacher:
int Oink = S2::Flubb;
}
</code></pre>
<p>Das Problem war, dass ich Greifzu() ca. 65 mal in der Sekunde aufgerufen wird, sodass das ständige Riesen-variable erstellen total bremsen würde.<br />
dann kam ich auf die idee, die Variable als Member zu setzten, aber so ist es viiiiel einfacher <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>Trotzdem Danke für die Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2340745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340745</guid><dc:creator><![CDATA[boomigaard]]></dc:creator><pubDate>Tue, 23 Jul 2013 21:02:05 GMT</pubDate></item></channel></rss>