<?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[Deklaration von &amp;quot;struct&amp;quot;]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte in einer Header-File die Klasse</p>
<pre><code>struct Tt;
</code></pre>
<p>NUR bekannt machen (deklarieren) und in der zugehörigen cpp-File definieren</p>
<pre><code>struct Tt{int a; void f()}
</code></pre>
<p>Beim compilieren geht alles gut und es funktioniert auch. ABER:</p>
<p>Die beim comilieren entstandene obj- File nutze ich in einem anderen Projekt. Ich &quot;include&quot; die Header- File und möchte jetzt ein Objekt der (eigentlich bekannten) Klasse Tt anlegen. Der Compiler sagt er kennt die struktur Tt nicht!?!?!?! Warum??? Was ist der Ausweg?? <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/154938/deklaration-von-quot-struct-quot</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 02:30:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154938.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Aug 2006 07:50:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Tue, 01 Aug 2006 07:50:15 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte in einer Header-File die Klasse</p>
<pre><code>struct Tt;
</code></pre>
<p>NUR bekannt machen (deklarieren) und in der zugehörigen cpp-File definieren</p>
<pre><code>struct Tt{int a; void f()}
</code></pre>
<p>Beim compilieren geht alles gut und es funktioniert auch. ABER:</p>
<p>Die beim comilieren entstandene obj- File nutze ich in einem anderen Projekt. Ich &quot;include&quot; die Header- File und möchte jetzt ein Objekt der (eigentlich bekannten) Klasse Tt anlegen. Der Compiler sagt er kennt die struktur Tt nicht!?!?!?! Warum??? Was ist der Ausweg?? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1108220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108220</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Tue, 01 Aug 2006 07:50:15 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Tue, 01 Aug 2006 07:56:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>du musst extern im header davorschreiben.</p>
<pre><code class="language-cpp">extern struct Tn;
</code></pre>
<p>und in genau einem .cpp File definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108225</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Tue, 01 Aug 2006 07:56:16 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Tue, 01 Aug 2006 08:03:27 GMT]]></title><description><![CDATA[<p>templäd schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>du musst extern im header davorschreiben.</p>
<pre><code class="language-cpp">extern struct Tn;
</code></pre>
<p>und in genau einem .cpp File definieren.</p>
</blockquote>
<p>Das war auch meine erste Vermutung, aber der Compiler meckert und sagt &quot;E2092 Speicherklasse 'extern' ist hier nicht erlaubt.&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108228</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Tue, 01 Aug 2006 08:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Tue, 01 Aug 2006 08:06:15 GMT]]></title><description><![CDATA[<p>Ich hb das so gelernt, dass im header der komplette Strukt stehen muss, da es sich ja um einen neuen Datentyp und keine Funktion handelt. Woran soll man sonst erkennen, was man alles an Daten in den struct packen kann. Bei klassen macht man dass doch enauso, nur dass man da die methoden selbst erst in der cpp file deklariert. Das extern wird imho nur beim anlegen von globalen Variablen gebraucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108229</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Tue, 01 Aug 2006 08:06:15 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Tue, 01 Aug 2006 08:22:14 GMT]]></title><description><![CDATA[<p>Ok das kann natürlich sein. Wenn ich jetzt ganauer darüber nachdenke macht es auch keinen Sinn die Definition zu verbergen, da der Anwender ja wissen muss welche Datenelemente bzw Elementfunktionen es gibt. Die Elementfunktionen kann ich ja nach wie vor in der cpp- File definieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
<p>Auf was für schräge Dinge man kommt wenn man sich in eine Sache verrennt ts ts ts.</p>
<p>Danke Euch!!! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1108237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108237</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Tue, 01 Aug 2006 08:22:14 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Tue, 01 Aug 2006 17:51:02 GMT]]></title><description><![CDATA[<p>Nicht nur der Benutzer muss wissen, mit welchen Elementfunktionen er auf die inneren Daten des structs zugreifen kann,<br />
sondern auch der Compiler muss wissen, wie groß Objekte dieses Typs sind, um entsprechend Speicherplatz<br />
zu reservieren.<br />
Von daher sind Datentypen wie 'enum' oder 'struct' in der Headerdatei nicht nur zu deklarieren, sondern auch zu definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108753</guid><dc:creator><![CDATA[Bobby - Karle]]></dc:creator><pubDate>Tue, 01 Aug 2006 17:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Tue, 01 Aug 2006 18:03:22 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">extern struct Tn;
</code></pre>
</blockquote>
<p>ist eine deklaration des typs Th. allerdings ist extern nur bei der deklaration von objekten und funktionen zulässig. möglich wäre also</p>
<blockquote>
<pre><code class="language-cpp">extern struct Foo foo;
</code></pre>
</blockquote>
<p>hier wird ein typ Foo und ein objekt foo vom typ Foo deklariert. falls Foo bereits vorher deklariert wurde, ist das struct überflüssig. all das ändert nat. nichts daran, dass man nur wenige sachen mit einer solchen deklaration anfangen kann, bis der typ Foo vollständig ist (d.h. definiert wurde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108758</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 01 Aug 2006 18:03:22 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Wed, 02 Aug 2006 06:16:26 GMT]]></title><description><![CDATA[<p>Bobby - Karle schrieb:</p>
<blockquote>
<p>Nicht nur der Benutzer muss wissen, mit welchen Elementfunktionen er auf die inneren Daten des structs zugreifen kann,<br />
sondern auch der Compiler muss wissen, wie groß Objekte dieses Typs sind, um entsprechend Speicherplatz<br />
zu reservieren.</p>
</blockquote>
<p>Die Grösse des structs bekommt doch der Compiler beim anlegen des Objekts mit, da er ja dann auch schon die Definition der Klasse &quot;gesehen&quot; hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108930</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Wed, 02 Aug 2006 06:16:26 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration von &amp;quot;struct&amp;quot; on Wed, 02 Aug 2006 08:33:12 GMT]]></title><description><![CDATA[<p>kingvik387 schrieb:</p>
<blockquote>
<p>Bobby - Karle schrieb:</p>
<blockquote>
<p>Nicht nur der Benutzer muss wissen, mit welchen Elementfunktionen er auf die inneren Daten des structs zugreifen kann,<br />
sondern auch der Compiler muss wissen, wie groß Objekte dieses Typs sind, um entsprechend Speicherplatz<br />
zu reservieren.</p>
</blockquote>
<p>Die Grösse des structs bekommt doch der Compiler beim anlegen des Objekts mit, da er ja dann auch schon die Definition der Klasse &quot;gesehen&quot; hat.</p>
</blockquote>
<p>Ja, <strong>wenn</strong> er die Definition der Klasse gesehen hat <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="😉"
    /> Wenn da nur eine Forward-Deklaration war, hat der Compiler ein Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108996</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 02 Aug 2006 08:33:12 GMT</pubDate></item></channel></rss>