<?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[Design Frage]]></title><description><![CDATA[<p>Hallo, ich habe gerade mal ein paar Sachen zusammengeschrieben die ich geübt habe um die Sachen zu vertiefen.</p>
<p>Würdet ihr using namespace std; auch in die n.h mit aufnehmen oder lieber nicht ?</p>
<p>Denn wenn im Hauptprogramm kein using namespace std; verwendet wird dann funktioniert meine Klasse aus dem Namensraum data ja nicht.</p>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
using namespace std;

#include &quot;n.h&quot;
using namespace data;

int main()
{

Def(&quot;car&quot;,100);
Set(&quot;car&quot;,200);

cout&lt;&lt;&quot;tab size: &quot; &lt;&lt; tab.size() &lt;&lt; endl;

Def(&quot;boat&quot;,300);
Set(&quot;car&quot;,400);

cout&lt;&lt;&quot;tab size: &quot; &lt;&lt; tab.size() &lt;&lt; endl;

cout&lt;&lt;read_value(&quot;car&quot;) &lt;&lt; endl;
 cout&lt;&lt;read_value(&quot;boat&quot;) &lt;&lt; endl;

system(&quot;PAUSE&quot;);
}
</code></pre>
<p>n.h</p>
<pre><code class="language-cpp">namespace data
{

class dc
{
        public:

        string str;
        double var;

        dc(string s,double v) : str(s), var(v) {}

};

vector&lt;dc&gt; tab;

        void Set( string s,double v )
        {
                for(unsigned i=0;i&lt;tab.size();i++)
                {
                        if ( tab[i].str == s )
                        {
                                tab[i].var = v;
                        }

                }
        }

        double read_value (string s)
        {
               for(unsigned i=0;i&lt;tab.size();i++)
               {
                        if ( tab[i].str == s )
                        {
                                return tab[i].var;
                        }
                }
               return 0;
        }

        bool declared ( string str )
        {
                for (unsigned i=0;i&lt;tab.size();i++){
                        if(tab[i].str == str )
                        {
                                return true;
                        }
                }
                return false;
        }

        double Def ( string str, double var)
        {
                if ( declared(str) ){
                        cout&lt;&lt;&quot;dec error&quot;&lt;&lt;endl;
                        return 1;
                }
                tab.push_back( dc ( str ,var));
        return 0;
        }

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/298107/design-frage</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 02:20:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298107.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Jan 2012 15:59:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Design Frage on Fri, 13 Jan 2012 15:59:03 GMT]]></title><description><![CDATA[<p>Hallo, ich habe gerade mal ein paar Sachen zusammengeschrieben die ich geübt habe um die Sachen zu vertiefen.</p>
<p>Würdet ihr using namespace std; auch in die n.h mit aufnehmen oder lieber nicht ?</p>
<p>Denn wenn im Hauptprogramm kein using namespace std; verwendet wird dann funktioniert meine Klasse aus dem Namensraum data ja nicht.</p>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
using namespace std;

#include &quot;n.h&quot;
using namespace data;

int main()
{

Def(&quot;car&quot;,100);
Set(&quot;car&quot;,200);

cout&lt;&lt;&quot;tab size: &quot; &lt;&lt; tab.size() &lt;&lt; endl;

Def(&quot;boat&quot;,300);
Set(&quot;car&quot;,400);

cout&lt;&lt;&quot;tab size: &quot; &lt;&lt; tab.size() &lt;&lt; endl;

cout&lt;&lt;read_value(&quot;car&quot;) &lt;&lt; endl;
 cout&lt;&lt;read_value(&quot;boat&quot;) &lt;&lt; endl;

system(&quot;PAUSE&quot;);
}
</code></pre>
<p>n.h</p>
<pre><code class="language-cpp">namespace data
{

class dc
{
        public:

        string str;
        double var;

        dc(string s,double v) : str(s), var(v) {}

};

vector&lt;dc&gt; tab;

        void Set( string s,double v )
        {
                for(unsigned i=0;i&lt;tab.size();i++)
                {
                        if ( tab[i].str == s )
                        {
                                tab[i].var = v;
                        }

                }
        }

        double read_value (string s)
        {
               for(unsigned i=0;i&lt;tab.size();i++)
               {
                        if ( tab[i].str == s )
                        {
                                return tab[i].var;
                        }
                }
               return 0;
        }

        bool declared ( string str )
        {
                for (unsigned i=0;i&lt;tab.size();i++){
                        if(tab[i].str == str )
                        {
                                return true;
                        }
                }
                return false;
        }

        double Def ( string str, double var)
        {
                if ( declared(str) ){
                        cout&lt;&lt;&quot;dec error&quot;&lt;&lt;endl;
                        return 1;
                }
                tab.push_back( dc ( str ,var));
        return 0;
        }

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2167700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2167700</guid><dc:creator><![CDATA[cpp_design]]></dc:creator><pubDate>Fri, 13 Jan 2012 15:59:03 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Fri, 13 Jan 2012 16:10:31 GMT]]></title><description><![CDATA[<p>namespaces grundsätzlich nicht in header dateien! das führt das ganze prinzip doch ad absurdum!<br />
wenn main.cpp nicht ohne funktioniert, dann kommt das auch da rein und nirgends anders.</p>
<p>bsp: nehmen wir an du erstellst m.h in der using namespace data; steht. welchen sinn hat dann dein namespace data? korrekt - gar keinen.</p>
<p>im header musst du den typnamen inklusive namensraum angeben, zb so:</p>
<pre><code class="language-cpp">class dc
{
        public:

        std::string str;
        double var;

        dc(std::string s,double v) : str(s), var(v) {}

};
</code></pre>
<p>ist bisschen mehr tipparbeit, aber die EINZIG richtige alternative.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2167704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2167704</guid><dc:creator><![CDATA[spermium]]></dc:creator><pubDate>Fri, 13 Jan 2012 16:10:31 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Fri, 13 Jan 2012 16:42:09 GMT]]></title><description><![CDATA[<p>spermium schrieb:</p>
<blockquote>
<p>namespaces grundsätzlich nicht in header dateien! das führt das ganze prinzip doch ad absurdum!</p>
</blockquote>
<p>hä? was meinst du? ich denke du meinst eher ein</p>
<pre><code class="language-cpp">using namespace X
</code></pre>
<p>sollte man in einem header nicht machen. Aber die Verwendung von</p>
<pre><code class="language-cpp">namespace x {}
</code></pre>
<p>im header macht sinn. Ansonsten könntest du ja keine Funktionen oder Klassen in namespaces packen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2167715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2167715</guid><dc:creator><![CDATA[firefly]]></dc:creator><pubDate>Fri, 13 Jan 2012 16:42:09 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Fri, 13 Jan 2012 17:27:20 GMT]]></title><description><![CDATA[<p>firefly schrieb:</p>
<blockquote>
<p>spermium schrieb:</p>
<blockquote>
<p>namespaces grundsätzlich nicht in header dateien! das führt das ganze prinzip doch ad absurdum!</p>
</blockquote>
<p>hä? was meinst du? ich denke du meinst eher ein</p>
<pre><code class="language-cpp">using namespace X
</code></pre>
<p>sollte man in einem header nicht machen. Aber die Verwendung von</p>
<pre><code class="language-cpp">namespace x {}
</code></pre>
<p>im header macht sinn. Ansonsten könntest du ja keine Funktionen oder Klassen in namespaces packen.</p>
</blockquote>
<p>der der TE danach fragt ob ein &quot;using namespace&quot; in der header gehört oder nicht, kann man das eigendlich nur falsch verstehen wenn man es auch falsch verstehen will ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2167731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2167731</guid><dc:creator><![CDATA[spermium]]></dc:creator><pubDate>Fri, 13 Jan 2012 17:27:20 GMT</pubDate></item></channel></rss>