<?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[c++ Design (non-friend, non-member functions)]]></title><description><![CDATA[<p>da ich mit java angefangen habe zu programmieren, sieht mein code noch sehr<br />
danach aus (grosse klassen, mit jedem mist drin)<br />
ich habe aber festgestellt, das sowas gelinde gesagt horror ist ...</p>
<p>deshalb habe ich nun angefangen alles ein wenig auszulagern,<br />
ich möchte aber eigentlich nicht den globalen namespace vollmüllen<br />
(wobei es mir nicht ums vollmüllen geht, sondern eher darum,<br />
das man den functionen noch ansieht zu welcher klasse sie eigentlich<br />
gehören)</p>
<p>ich wollte nun alles in diese richtung umschreiben :</p>
<pre><code class="language-cpp">class DataSet
{

  static const std::string TRAINDATA_BASE_DATASET_CLASSNAME;

public:

  DataSet(  const std::string&amp; SndFileName=std::string(&quot;&quot;), 
            const std::string&amp; LabFileName=std::string(&quot;&quot;));
...
private :

...
};

namespace DataSet_Funcs
{
Hier die functions rein
}
</code></pre>
<p>meine frage wäre nun, wie ihr das macht, alles in den globalen namespace?<br />
Wie nennt ihr solche namespaces, will mich da ein wenig an den standard halten.<br />
Oder gleich als static funcs in die klasse rein ...</p>
<p>Würde mich über Anregungen freuen</p>
<p>Treb</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204287/c-design-non-friend-non-member-functions</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 09:34:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204287.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 01 Feb 2008 09:11:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to c++ Design (non-friend, non-member functions) on Fri, 01 Feb 2008 09:12:04 GMT]]></title><description><![CDATA[<p>da ich mit java angefangen habe zu programmieren, sieht mein code noch sehr<br />
danach aus (grosse klassen, mit jedem mist drin)<br />
ich habe aber festgestellt, das sowas gelinde gesagt horror ist ...</p>
<p>deshalb habe ich nun angefangen alles ein wenig auszulagern,<br />
ich möchte aber eigentlich nicht den globalen namespace vollmüllen<br />
(wobei es mir nicht ums vollmüllen geht, sondern eher darum,<br />
das man den functionen noch ansieht zu welcher klasse sie eigentlich<br />
gehören)</p>
<p>ich wollte nun alles in diese richtung umschreiben :</p>
<pre><code class="language-cpp">class DataSet
{

  static const std::string TRAINDATA_BASE_DATASET_CLASSNAME;

public:

  DataSet(  const std::string&amp; SndFileName=std::string(&quot;&quot;), 
            const std::string&amp; LabFileName=std::string(&quot;&quot;));
...
private :

...
};

namespace DataSet_Funcs
{
Hier die functions rein
}
</code></pre>
<p>meine frage wäre nun, wie ihr das macht, alles in den globalen namespace?<br />
Wie nennt ihr solche namespaces, will mich da ein wenig an den standard halten.<br />
Oder gleich als static funcs in die klasse rein ...</p>
<p>Würde mich über Anregungen freuen</p>
<p>Treb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1447425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1447425</guid><dc:creator><![CDATA[Treb]]></dc:creator><pubDate>Fri, 01 Feb 2008 09:12:04 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Design (non-friend, non-member functions) on Fri, 01 Feb 2008 09:44:41 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>als erstes mal: Guter Ansatz !! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Ich würde die Teile einfach in denselben namespace packen wie auch die Klassen, zu denen sie &quot;gehören&quot;. Letztlich sind sie genauso Bestandteil der Schnittstelle...</p>
<p><a href="http://www.ddj.com/cpp/184401197" rel="nofollow">Bei Dr.Dobbs</a> gibt's übrigens (leider erst nach einer kurzen Werbepause) einen guten Artikel von Scott Meyers darüber, wann freie Funktionen sinnvoll sind.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1447435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1447435</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 01 Feb 2008 09:44:41 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Design (non-friend, non-member functions) on Fri, 01 Feb 2008 10:07:55 GMT]]></title><description><![CDATA[<p>Die Klasse DataSet und die freien Funktionen in einen Namespace. Generell sollte man IMMER Namespace benutzen. Ich mache das immer so: pro Projekt einen Namespace. Dieser KANN natürlich wieder andere Namespace haben. Aber meistens habe ich einen Namespace pro Projekt. Globale Namespaces sind bei mir tabu.</p>
<pre><code class="language-cpp">namespace DataSetProjekt
{

class DataSet
{

  static const std::string TRAINDATA_BASE_DATASET_CLASSNAME;

public:

  DataSet(  const std::string&amp; SndFileName=std::string(&quot;&quot;),
            const std::string&amp; LabFileName=std::string(&quot;&quot;));
...
private :

...
};

Hier die functions rein

} // namespace end
</code></pre>
<p>Namespaces sind übrigens offen, du kannst allso über mehrere Dateien alles in einen Namespace legen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1447447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1447447</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Fri, 01 Feb 2008 10:07:55 GMT</pubDate></item></channel></rss>