<?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[Objekt-(des)Orientierung]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich denke, ich bin schlicht zu dämlich das System der OOP zu verstehen:</p>
<p>Ich habe eine Klasse 'Karten' erstellt, welche die Memberfunktionen DeckErstellen() und mischen() kennt. In der Hauptfunktion wird dann ein Objekt der Klasse Karten erstellt, dieses ruft DeckErstellen() auf und dieses nun erstellte Deck soll mit mischen() gemischt werden:</p>
<pre><code class="language-cpp">class cards
{      
        //mach etwas 
	bool createDeck();
	bool shuffle(cards deck[52]);

};

bool cards::createDeck()
{
   //Erstelle für jede Karte ein Objekt

   cards deck [52] =
   {
      //fülle das array mit den karten in sortierter reihenfolge
   };

}

bool cards::shuffle(cards deck[52])
{

    vector &lt;cards&gt; shuffledDeck;

    shuffledDeck.push_back(deck[1]); //Befülle das gemischtedeck mit den Karten //aus Deck (aus Gründen der einfachheit hier noch immer sortiert)

}

int main()
{

    cards gamedeck;
    gamedeck.createDeck();
    gamedeck.shuffle(deck);

}
</code></pre>
<p>Natürlich funktioniert das nicht, weil in diesem Bereich das Array 'deck' nicht bekannt ist. ich kann aber auch schlecht das gamedeck als paramter übergeben.<br />
Die Funktionen mischen und erstellen möchte ich auch nicht zusammenfassen.</p>
<p>Wo also lässt sich eine Verbesserung einbringen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258741/objekt-des-orientierung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 04:53:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258741.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Jan 2010 15:18:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt-(des)Orientierung on Thu, 14 Jan 2010 15:18:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich denke, ich bin schlicht zu dämlich das System der OOP zu verstehen:</p>
<p>Ich habe eine Klasse 'Karten' erstellt, welche die Memberfunktionen DeckErstellen() und mischen() kennt. In der Hauptfunktion wird dann ein Objekt der Klasse Karten erstellt, dieses ruft DeckErstellen() auf und dieses nun erstellte Deck soll mit mischen() gemischt werden:</p>
<pre><code class="language-cpp">class cards
{      
        //mach etwas 
	bool createDeck();
	bool shuffle(cards deck[52]);

};

bool cards::createDeck()
{
   //Erstelle für jede Karte ein Objekt

   cards deck [52] =
   {
      //fülle das array mit den karten in sortierter reihenfolge
   };

}

bool cards::shuffle(cards deck[52])
{

    vector &lt;cards&gt; shuffledDeck;

    shuffledDeck.push_back(deck[1]); //Befülle das gemischtedeck mit den Karten //aus Deck (aus Gründen der einfachheit hier noch immer sortiert)

}

int main()
{

    cards gamedeck;
    gamedeck.createDeck();
    gamedeck.shuffle(deck);

}
</code></pre>
<p>Natürlich funktioniert das nicht, weil in diesem Bereich das Array 'deck' nicht bekannt ist. ich kann aber auch schlecht das gamedeck als paramter übergeben.<br />
Die Funktionen mischen und erstellen möchte ich auch nicht zusammenfassen.</p>
<p>Wo also lässt sich eine Verbesserung einbringen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1838876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1838876</guid><dc:creator><![CDATA[serbud]]></dc:creator><pubDate>Thu, 14 Jan 2010 15:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt-(des)Orientierung on Thu, 14 Jan 2010 15:23:56 GMT]]></title><description><![CDATA[<p>Zu einem Objekt gehört normalerweise auch sinnvolle Daten, auf welchen die Funktionen der Klasse operieren. Mach also <code>deck</code> zu einer Member der Klasse <code>cards</code> .</p>
<p>Dann geht natürlich die Initialisierung nicht mehr so einfach, aber da kannst du einfach ne Schleife oder so benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1838878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1838878</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 14 Jan 2010 15:23:56 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt-(des)Orientierung on Thu, 14 Jan 2010 15:27:33 GMT]]></title><description><![CDATA[<p>Die Klasse cards macht hier nicht viel Sinn, du versuchst damit die Funktion eines namespaces nachzubilden.<br />
Sinnvolle Klassen wären Deck (hat einen Vektor mit Karten, kann sich selbst mischen, etc.) und Karte (hat einen Wert, vielleicht eine Farbe, etc.).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1838881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1838881</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 14 Jan 2010 15:27:33 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt-(des)Orientierung on Thu, 14 Jan 2010 15:28:10 GMT]]></title><description><![CDATA[<p>Der Schlüssel sind Membervariablen. Vorschlag:</p>
<pre><code class="language-cpp">class Card{
  // Modell einer Karte, wie auch immer das aussehen soll. 
};

class Deck
{      
private:
    Card deck[32];
public:
    Deck();
    bool shuffle();

};

Deck::Deck()
{
   {
      //fülle das array deck mit den karten in sortierter reihenfolge
   };
}

bool Deck::shuffle()
{
   random_shuffle ( deck[0], deck[31] );
}

int main()
{

    Deck gamedeck;
    gamedeck.shuffle();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1838883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1838883</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Jan 2010 15:28:10 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt-(des)Orientierung on Fri, 15 Jan 2010 14:49:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Deck::Deck()
{
   {
      //fülle das array deck mit den karten in sortierter reihenfolge
   };
}
</code></pre>
<p>An dieser Stelle scheitert das ganze. Ein anderer User meinte dass ein Array nur dann auf diese weise initiallisiert werden kann, wenn er angelegt wird. Hier also ist ein</p>
<pre><code class="language-cpp">deck[32] =
{
//viele karten
};
</code></pre>
<p>nicht möglich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839330</guid><dc:creator><![CDATA[serbud@web.de]]></dc:creator><pubDate>Fri, 15 Jan 2010 14:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt-(des)Orientierung on Fri, 15 Jan 2010 14:56:37 GMT]]></title><description><![CDATA[<p>Füll es in einer Schleife !</p>
<pre><code class="language-cpp">for(int i = 0; i &lt; 32;++i)
{
card[i] = // Mach was mit der aktuellen karte
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1839332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839332</guid><dc:creator><![CDATA[sirchillalot]]></dc:creator><pubDate>Fri, 15 Jan 2010 14:56:37 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt-(des)Orientierung on Fri, 15 Jan 2010 15:08:14 GMT]]></title><description><![CDATA[<p>Das würde funktionieren wenn die Karten gleich bleibend aufsteigende Werte hätten und sich nicht in Farbe und Wert unterscheiden würden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839347</guid><dc:creator><![CDATA[serbud]]></dc:creator><pubDate>Fri, 15 Jan 2010 15:08:14 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt-(des)Orientierung on Fri, 15 Jan 2010 15:22:21 GMT]]></title><description><![CDATA[<p>serbud schrieb:</p>
<blockquote>
<p>Das würde funktionieren wenn die Karten gleich bleibend aufsteigende Werte hätten und sich nicht in Farbe und Wert unterscheiden würden.</p>
</blockquote>
<p>Naja, wenn deine Kartenwerte 7-14 und deine Farben 0-3 sind, mach es z.B. so:</p>
<pre><code class="language-cpp">for (int i=0;i&lt;32;i++)deck[i]=Card(7+i/4,i%4);
</code></pre>
<p>Wenn deine Werte und Farben enums sind, ist jeweils noch ein static_cast fällig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839358</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Fri, 15 Jan 2010 15:22:21 GMT</pubDate></item></channel></rss>