<?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[namespace in einer Klasse]]></title><description><![CDATA[<p>kann ich einen namespace in einer Klasse erstellen?</p>
<p>z.b.</p>
<pre><code class="language-cpp">class XYZ
{
 namespace a
 {
  //iwas
 };
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/220901/namespace-in-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 14:09:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220901.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Aug 2008 14:05:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to namespace in einer Klasse on Fri, 22 Aug 2008 14:05:18 GMT]]></title><description><![CDATA[<p>kann ich einen namespace in einer Klasse erstellen?</p>
<p>z.b.</p>
<pre><code class="language-cpp">class XYZ
{
 namespace a
 {
  //iwas
 };
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1569664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569664</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Fri, 22 Aug 2008 14:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Fri, 22 Aug 2008 14:12:09 GMT]]></title><description><![CDATA[<p>Nein. Was sollte das bringen?</p>
<p>Und wieso probierst du sowas nicht einfach aus?</p>
<p>P.S.: Namespace-Blöcke brauchen kein Semikolon zum Abschluss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569671</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 22 Aug 2008 14:12:09 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Fri, 22 Aug 2008 14:23:45 GMT]]></title><description><![CDATA[<p>die elemente der klasse haben ja sowieso einen eigenen Gültigkeitsbereich, warum willste denn da noch ein namespace rein tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569678</guid><dc:creator><![CDATA[uhsuhz]]></dc:creator><pubDate>Fri, 22 Aug 2008 14:23:45 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Fri, 22 Aug 2008 23:27:12 GMT]]></title><description><![CDATA[<p>uhsuhz schrieb:</p>
<blockquote>
<p>die elemente der klasse haben ja sowieso einen eigenen Gültigkeitsbereich, warum willste denn da noch ein namespace rein tun?</p>
</blockquote>
<p>Vermutlich um weitere Unterbereiche zu bilden, eben das was namespaces im globalen Bereich auch machen.<br />
Jud4s: du kannst dir helfen indem du in der Klasse statt des namespace ein struct mit statischen Methoden und Membern definierst. Die Wirkung ist ähnlich der eines namespace.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569890</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 22 Aug 2008 23:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Sat, 23 Aug 2008 20:49:10 GMT]]></title><description><![CDATA[<p>thx @ pumukl, hast recht mit deiner Therorie, ich will in einer Klasse auf bestimmte Elemente immernoch ohne Schwierigkeiten zugreifen können, allerdings will ich beides von einander trennen damit ich nicht durcheinander komme und die Lesbarkeit immernoch gewärleistet ist.....</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a>: habe ich? allerdings klappte es nicht (wie auch wenns nicht geht <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="😉"
    /> ) und ich dachte vll habe ich was falsch gemacht, und siehe da, ich habe zwar nix falsch gemacht, aber eine Lösung habe ich dennoch gesagt bekommen....</p>
<p>@uhsuz: ich fand die idee gut und sinnvoll</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570272</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Sat, 23 Aug 2008 20:49:10 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Sat, 23 Aug 2008 21:41:11 GMT]]></title><description><![CDATA[<p>Jud4s schrieb:</p>
<blockquote>
<p>thx @ pumukl, hast recht mit deiner Therorie, ich will in einer Klasse auf bestimmte Elemente immernoch ohne Schwierigkeiten zugreifen können, allerdings will ich beides von einander trennen damit ich nicht durcheinander komme und die Lesbarkeit immernoch gewärleistet ist...</p>
</blockquote>
<p>Bei mir läuten gerade die Alarmglocken. Ich kann falsch liegen, aber ich schätze fast das du dein Klassendesign überdenken solltest. Klassen sollten immer nur eine Aufgabe abdecken (große Klassen tendieren dazu deutlich mehr zu machen), und noch extremer wird dies im Buch &quot;Code Complete&quot; gesagt: Eine Klasse sollte nur 5 +/- Membervariablen besitzen. Letzteres halte ich zwar etwas für übertrieben, geht aber schon in die richtige Richtung.</p>
<p>Bei einem guten Klassendesign sollte die Klasse eigentlich noch überschaubar bleiben. Lieber etwas feiner untergliedern als das man den überblick verliert.</p>
<p>Um mal ein Beispiel zu geben:<br />
In einer Anwendung habe ich eine Klasse verwendet die auf Grund der Vorgaben sowohl eine Adresse dargestellt hat (mit Getter/Setter sowie direkt damit zusammenhängende Logik) - soweit noch akzeptabel, außer das dieses Adressobjekt schon alleine aus ca. 40 Membervariablen+ bestanden hat - zudem hat sich die Klasse aber auch mit dem Auslesen und Speichern der Daten beschäftigt, ebenso wie mit Angaben zum HTML-Export.</p>
<p>Ein Besseres Design würde die 3 genannten Aufgabenbereiche herauslösen:<br />
a) Representation der Adresse<br />
b) Laden/Speichern der Daten<br />
c) HTML-Export</p>
<p>Zudem könnte man schauen ob man nicht auch die Memberanzahl verringert. Das Objekt war eine 1:1 Abbildung der Datenbank und enthielt u.a. einige Kommunikationsangaben, die Anschrift etc. zu einer Adresse. Bereits aus den Begrifflichkeiten kannst du sehen wie ich persönlich weiter aufsplitten würde (Anschrift als separate Klasse, was auch noch den Vorteil der möglichen 1:n Beziehung später hätte, sowas wie getrennte Rechnungs- und Lieferanschrift...; Herauslösen der Kommunikationsdaten wie Telefon, Fax... auch hier gleich mit dem Hintergrund das eine Adresse mehrere einer Art haben kann).</p>
<p>Man erhöht zwar die Klassenanzahl damit, anderseits werden die Klassen übersichtlicher, leichter wartbar und können zudem unter Umständen auch flexibler verwendet werden (z.B. die von mir erwähnten 1:n Beziehungen).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570291</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sat, 23 Aug 2008 21:41:11 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Sun, 24 Aug 2008 19:28:15 GMT]]></title><description><![CDATA[<p>diese Wiederverwendbarkeit ist bruache ich (immo) nicht, da diese Klasse genau für eine Sache konstruiert worden ist.... das reprenstieren von einem &quot;Spieler&quot; und, dieser hat bestimmt eigenschaften und Methoden um selbige zu nutzen. Nun aber will cih das der Computer auch einen &quot;Spieler&quot; &quot;spiel&quot; allerdings müssen da die Methoden etwas anders sein da der Computer ja selber berechnen soll was er macht... allerdings braucht der Comp dennoch die selben eigenschaften..... wie bitteschön soll cih das sinnvoll in weitere Klassen untergliedern? Ich könnte vll noch eine eigene Klasse dafür anlegen, aber defakto würde diese zu 80% mit der alten Klasse übereinstimmen, und diese 20% sind 3 Methoden.....</p>
<p>Wenn du/ihr/allesamt mir eine bessere/sinnvoller Lösung vorschlagen könnt, bin ich aufnahmebereit....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570661</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Sun, 24 Aug 2008 19:28:15 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Sun, 24 Aug 2008 19:39:55 GMT]]></title><description><![CDATA[<p>Was ist mit Vererbung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570671</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Aug 2008 19:39:55 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Sun, 24 Aug 2008 19:41:15 GMT]]></title><description><![CDATA[<p>Jud4s schrieb:</p>
<blockquote>
<p>diese Wiederverwendbarkeit ist bruache ich (immo) nicht, da diese Klasse genau für eine Sache konstruiert worden ist...</p>
</blockquote>
<p>Nicht desto trotz habe ich die Befürchtung das es eben nicht nur eine Sache ist. Klassen die sich wirklich nur eine Aufgabe stellen tendieren dazu immer überschaubar zu bleiben.</p>
<p>Jud4s schrieb:</p>
<blockquote>
<p>Nun aber will cih das der Computer auch einen &quot;Spieler&quot; &quot;spiel&quot; allerdings müssen da die Methoden etwas anders sein da der Computer ja selber berechnen soll was er macht...</p>
</blockquote>
<p>Mehrere Möglichkeiten:<br />
1. Gemeinsame Basisklasse, alle unterschiede werden in die Abgeleiteten verfrachtet (z.B. ISpieler, Spieler, Computerspieler).<br />
2. Unterschiedliche Logik als Strategie auslagern (Siehe Entwurfsmuster <a href="http://de.wikipedia.org/wiki/Strategie_(Entwurfsmuster)" rel="nofollow">&quot;Strategie&quot;</a>). Diese Variante kann sinnvoll sein wenn du noch unterschiedliche Computerspieler implementierst.<br />
usw.</p>
<p>Jud4s schrieb:</p>
<blockquote>
<p>wie bitteschön soll cih das sinnvoll in weitere Klassen untergliedern?</p>
</blockquote>
<p>Grundsätzlich besagt schon das es Unterschiede gibt die nötige Untergliederung. Eine Klasse eine Aufgabe: entweder Computerspieler oder menschlicher Gegenpart.</p>
<p>Deine &quot;.&quot;-Taste sollte auch mal repariert werden.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570672</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sun, 24 Aug 2008 19:41:15 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Sun, 24 Aug 2008 20:15:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Player;

class Card
{
      public:
      int priority;
      int color;

      public:
      Card();
      void CardChange(int,int);
      void getCard(int);
};

class CardSetPoker
{
      public:
      Card CardSet[32];
      Card MixedCardSet[32];
      int CardsRemains;

      void setCardsRemains();
      void ConstructCardSet();
      void getSet();
      void getSetMod();
      void mixEmUp();
      void giveout(Player&amp; player);
};

class Player
{
      public:
      Card Deck[5];
      int money;
	  int ValueOfCards;

      void first_of_all_functions();
      void getcards();
      void sortcards();
      int givemoney(int);
      void changecards(Card*,int&amp;);
	  void recognizecardvalue();
	  int steigern(int&amp;);
	  namespace KI  //jaja ich weiss das geht net ;)
	  {
		  void changecards(Card*,int&amp;);
		  int steigern(int&amp;);
	  };
};
</code></pre>
<p>ich habe mir mal meine Klassen angeguckt, bin aber nicht zu einer Lösung gekommen wie ich die Klassen in kleinere Klassen auslagern kann. Da ich z.b. nicht einfach ein paar Methoden in eine andere Klasse schreiben kann, da sich sonst Zugriffsprobleme ergeben, bzw sihc das ganze dann total unüberichtlich gestalten wird. Ich will jetzt nicht das ihr die Arbeit für mich macht aber ihc habe keinen blassen Schimmer wie ich deine Vorschläge umsetzen kann/soll.</p>
<p>Mfg Judas</p>
<p>PS: anscheinend hatte die &quot;.&quot; - Taste nen Kurzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570676</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Sun, 24 Aug 2008 20:15:26 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Sun, 24 Aug 2008 20:29:39 GMT]]></title><description><![CDATA[<p>Die simpleste Lösung (aber auch die mit der stärksten Bindung, und in der regel eine der schlechteren Alternativen) ist Vererbung:</p>
<pre><code class="language-cpp">class IPlayer
{
    private:
        // Membervariablen sollten niemals direkt veröffentlicht werden,
        // dann lieber Getter/Setter bei denen du zumindestens jederzeit
        // noch überprüfungen einbauen kannst. Unter umständen (bin kein
        // Freund davon, würde auch protected gehen
        Card Deck[5];
        int money;
        int ValueOfCards;

    public:
        // Sprechender geht es nicht? 
        void first_of_all_functions();
        void getcards();
        void sortcards();
        int givemoney(int);
        virtual void changecards(Card*,int&amp;) = 0; // Ich finde es eine Abart die
          // Bezeichner im Header (der zum Überschauen besser ist) wegzulassen
        void recognizecardvalue();
        virtual int steigern(int&amp;) = 0;
};

class HumanPlayer : public IPlayer
{
    public:
        void changecards(Card*,int&amp;);
        int steigern(int&amp;);
};

class ComputerPlayer : public IPlayer
{
    public:
        void changecards(Card*,int&amp;);
        int steigern(int&amp;);
};
</code></pre>
<p>Und nun les dir erstmal etwas über Vererbung/Polymorphie durch. Es gibt andere Alternativen mit schwächerer Bindung, aber für den Anfang wird dieser Weg für dich leichter sein.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570689</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sun, 24 Aug 2008 20:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to namespace in einer Klasse on Sun, 24 Aug 2008 20:36:14 GMT]]></title><description><![CDATA[<p>keyy... vielen Dank für deine Mühen, werde sie probieren nach besten Mühen und Anstrengungen umzusetzen...</p>
<p>Mfg Judas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570692</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Sun, 24 Aug 2008 20:36:14 GMT</pubDate></item></channel></rss>