<?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[Wo sollten man structs definieren?]]></title><description><![CDATA[<p>Servus,</p>
<p>ich brauche eine Hilfsdatenstruktur - ich wollte struct nehmen. Wo sollte ich die Struktur dann anlegen. Gebraucht wird diese nur in einer Methode also in der Datei myclass.cpp. Soll ich diese dann in die Methode, in die Klassendatei, in die zugehörige Header-Datei schreiben oder etwa direkt pro struct eine eigene Datei nehmen?</p>
<p>Danke vorab.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279856/wo-sollten-man-structs-definieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 09:03:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279856.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Jan 2011 23:36:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Tue, 04 Jan 2011 23:36:18 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>ich brauche eine Hilfsdatenstruktur - ich wollte struct nehmen. Wo sollte ich die Struktur dann anlegen. Gebraucht wird diese nur in einer Methode also in der Datei myclass.cpp. Soll ich diese dann in die Methode, in die Klassendatei, in die zugehörige Header-Datei schreiben oder etwa direkt pro struct eine eigene Datei nehmen?</p>
<p>Danke vorab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002483</guid><dc:creator><![CDATA[Jay1980]]></dc:creator><pubDate>Tue, 04 Jan 2011 23:36:18 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Tue, 04 Jan 2011 23:46:09 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Finde ich persönlich erstmal ziemlich egal. Wenn Du sie später wiederverwenden willst, wäre eine Headerdatei natürlich äußerst sinnvoll. Wenn du sicher bist, sie nur in der Datei zu verwenden, kannst Du sie einfach in der Datei definieren und verwenden. Ich sehe nicht, was dagegen spricht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002484</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Tue, 04 Jan 2011 23:46:09 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Tue, 04 Jan 2011 23:53:53 GMT]]></title><description><![CDATA[<p>... also direkt in der Methode in der sie gebraucht werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002485</guid><dc:creator><![CDATA[Jay1980]]></dc:creator><pubDate>Tue, 04 Jan 2011 23:53:53 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Tue, 04 Jan 2011 23:59:09 GMT]]></title><description><![CDATA[<p>Jay1980 schrieb:</p>
<blockquote>
<p>... also direkt in der Methode in der sie gebraucht werden?</p>
</blockquote>
<p>nein!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002487</guid><dc:creator><![CDATA[__--]]></dc:creator><pubDate>Tue, 04 Jan 2011 23:59:09 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Wed, 05 Jan 2011 00:34:06 GMT]]></title><description><![CDATA[<p>__-- schrieb:</p>
<blockquote>
<p>Jay1980 schrieb:</p>
<blockquote>
<p>... also direkt in der Methode in der sie gebraucht werden?</p>
</blockquote>
<p>nein!</p>
</blockquote>
<p>Warum nicht? Wenn die Struktur nur dort gebraucht wird. Warum auch nicht? Vor allem bei so Sachen, wie Funktoren ist das gar nicht zu verachten. Entspricht ja dann sozusagen einer anonymen Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002492</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 05 Jan 2011 00:34:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Wed, 05 Jan 2011 01:18:35 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Wenn Du sie später wiederverwenden willst, wäre eine Headerdatei natürlich äußerst sinnvoll.</p>
</blockquote>
<p>Das sehe ich GANZ anders, ich halte diese Art von Denken für schädlich/gefährlich.<br />
Das ist so wie &quot;eine abgeleitete Klasse *könnte* diese Funktion brauchen, machen wir sie protected statt private&quot;.<br />
Das führt dazu, dass man die Kapselung unnötig aufbricht, und die Komplexität eines Projekts unnötig steigt.</p>
<p>Bei Dingen die in Header-Files deklariert/definiert werden, obwohl sie nur in einem .cpp File benötigt werden ist es ähnlich: es wird alles unübersichtlicher, und Refactoring wird erschwert, weil man länger braucht um sicherzustellen dass man alle Stellen gefunden hat, die eine Funktion/Klasse/Struct verwenden.<br />
(Wenn etwas direkt im .cpp File in einem nameless namespace steht, weiss man sofort, dass es ausserhalb nicht verwendet werden *kann*)</p>
<p>Ich finde es viel besser einfach mal alles private zu machen bzw. eben in nameless namespaces in .cpp Files zu packen.<br />
Braucht man es später wirklich an mehreren Stellen, kann man es ja ohne grösseren Aufwand protected/public machen bzw. vom .cpp File in ein Header-File verschieben.</p>
<p>Auch spart es Implemeniterungs-Zeit, denn bei etwas was ich in einem nameless namespace packe zerbrech ich mir nicht so lange den Kopf darüber wie das Interface idealerweise aussehen sollte etc., als wenn es öffentlich ist.<br />
Zu dem Zeitpunkt wo man es dann &quot;public&quot; macht (in ein Header-File verschiebt), weiss man meist schon mehr über die dynamik des entsprechenden Code-Abschnitts. Zu dem Zeitpunkt kann man dadurch meist schnell beurteilen, ob das so wie man's erstmal auf die Schnelle gemacht hat auch gut ist, und falls nicht auch meist schnell anpassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002498</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 05 Jan 2011 01:18:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Wed, 05 Jan 2011 09:00:52 GMT]]></title><description><![CDATA[<p>Der Google Translator spuckt für hustbaer's Post folgenden Code aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> :</p>
<pre><code class="language-cpp">// myclass.cpp
namespace {
    struct theStruct {
        // ...
    };
}
// ...
// deine funktion, die sich auf das struct bezieht
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2002530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002530</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 05 Jan 2011 09:00:52 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Wed, 05 Jan 2011 13:38:34 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>__-- schrieb:</p>
<blockquote>
<p>Jay1980 schrieb:</p>
<blockquote>
<p>... also direkt in der Methode in der sie gebraucht werden?</p>
</blockquote>
<p>nein!</p>
</blockquote>
<p>Warum nicht? Wenn die Struktur nur dort gebraucht wird. Warum auch nicht? Vor allem bei so Sachen, wie Funktoren ist das gar nicht zu verachten. Entspricht ja dann sozusagen einer anonymen Funktion.</p>
</blockquote>
<p>Du kannst nur solche &quot;Funktions-lokale Typen&quot; nicht als Template-Parameter verwenden. Das verbietet Dir der C++03 Standard und ist erst ab C++0x erlaubt, wo dies auch für Lambdas ausgenutzt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002669</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 05 Jan 2011 13:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Wed, 05 Jan 2011 16:07:22 GMT]]></title><description><![CDATA[<p>Nagut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002771</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 05 Jan 2011 16:07:22 GMT</pubDate></item><item><title><![CDATA[Reply to Wo sollten man structs definieren? on Wed, 05 Jan 2011 17:39:10 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>__-- schrieb:</p>
<blockquote>
<p>Jay1980 schrieb:</p>
<blockquote>
<p>... also direkt in der Methode in der sie gebraucht werden?</p>
</blockquote>
<p>nein!</p>
</blockquote>
<p>Warum nicht? Wenn die Struktur nur dort gebraucht wird. Warum auch nicht? Vor allem bei so Sachen, wie Funktoren ist das gar nicht zu verachten. Entspricht ja dann sozusagen einer anonymen Funktion.</p>
</blockquote>
<p>Du kannst nur solche &quot;Funktions-lokale Typen&quot; nicht als Template-Parameter verwenden. Das verbietet Dir der C++03 Standard und ist erst ab C++0x erlaubt, wo dies auch für Lambdas ausgenutzt wird.</p>
</blockquote>
<p>Stimmt. Habe ich ganz vergessen. Man kann sie aber auch sonst nutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002826</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 05 Jan 2011 17:39:10 GMT</pubDate></item></channel></rss>