<?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[Alle Membervariablen als Parameter im Constructor ausgeben - geht das?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe vor 3 Tagen mal richtig mit dem Lernen der C++-Programmierung begonnen und bin jetzt bei den Klassen angelangt. Ich schreibe mir ein ziemlich sinnloses Programm zur Übung und bin auf die Idee gekommen, alle Membervariablen in einer Funktion im Constructor auszugeben, um direkt zu prüfen, ob sich das Objekt innerhalb eines Intervalls befindet.</p>
<p>Natürlich könnte ich auch alle Variablen einzeln übergeben, aber ich kann mit vorstellen, dass es bei vielen Variablen recht umständlich wird und es für C++ auch eine bessere Lösung gibt. Könntet ihr mir diese eventuell nennen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Also hier die relevanten Stellen:</p>
<pre><code>class Cplayer
{
private:	
	int m_power;
	int m_points;
	int m_energy;
	int m_posX;
	int m_posY;	

public:	
	Cplayer(int posX, int posY);
	Cplayer();
	void isInMap(Cplayer coordinates);
	void showStats();	
};

Cplayer::Cplayer(int posX, int posY)
{
	m_power = 100;
	m_points = 0;
	m_energy = 200;
	m_posX = posX;
	m_posY = posY;
	isInMap();        &lt;-- kann ich hier die Klasse als Parameter übergeben,
}                         sodass ich in der Funktion z.B. nur noch coordinates.m_posY prüfen müsste?
</code></pre>
<p>Vielen Dank für die Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319024/alle-membervariablen-als-parameter-im-constructor-ausgeben-geht-das</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 06:31:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319024.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Aug 2013 12:19:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Alle Membervariablen als Parameter im Constructor ausgeben - geht das? on Sun, 04 Aug 2013 12:20:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe vor 3 Tagen mal richtig mit dem Lernen der C++-Programmierung begonnen und bin jetzt bei den Klassen angelangt. Ich schreibe mir ein ziemlich sinnloses Programm zur Übung und bin auf die Idee gekommen, alle Membervariablen in einer Funktion im Constructor auszugeben, um direkt zu prüfen, ob sich das Objekt innerhalb eines Intervalls befindet.</p>
<p>Natürlich könnte ich auch alle Variablen einzeln übergeben, aber ich kann mit vorstellen, dass es bei vielen Variablen recht umständlich wird und es für C++ auch eine bessere Lösung gibt. Könntet ihr mir diese eventuell nennen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Also hier die relevanten Stellen:</p>
<pre><code>class Cplayer
{
private:	
	int m_power;
	int m_points;
	int m_energy;
	int m_posX;
	int m_posY;	

public:	
	Cplayer(int posX, int posY);
	Cplayer();
	void isInMap(Cplayer coordinates);
	void showStats();	
};

Cplayer::Cplayer(int posX, int posY)
{
	m_power = 100;
	m_points = 0;
	m_energy = 200;
	m_posX = posX;
	m_posY = posY;
	isInMap();        &lt;-- kann ich hier die Klasse als Parameter übergeben,
}                         sodass ich in der Funktion z.B. nur noch coordinates.m_posY prüfen müsste?
</code></pre>
<p>Vielen Dank für die Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343332</guid><dc:creator><![CDATA[FunkyPeanut]]></dc:creator><pubDate>Sun, 04 Aug 2013 12:20:48 GMT</pubDate></item><item><title><![CDATA[Reply to Alle Membervariablen als Parameter im Constructor ausgeben - geht das? on Sun, 04 Aug 2013 12:25:42 GMT]]></title><description><![CDATA[<p>Also erstmal prinzipiell:</p>
<p>Du kannst antürlich aus dem Konstruktor Funktionen aufrufen. Und wenn die halt das Objekt selbst als Argument erwartet dann kannst du es mitgeben</p>
<pre><code>void isInMap(Cplayer const&amp; p)
{
    // ...
}

// ...
Cplayer::Cplayer(int posX, int posY)
{
    m_power = 100;
    m_points = 0;
    m_energy = 200;
    m_posX = posX;
    m_posY = posY;
    isInMap(*this);    
}
</code></pre>
<p>So sieht das dann aus.</p>
<p>Allerdings ist in dieser Funktion der Zugriff auf die Membervariablen nicht ohne weiteres möglich, da diese ja hoffentlich private sind.</p>
<p>Um mal bei deinem Beispiel zu bleiben: alle Informationen (bis auf die Position) bleiben ja konstant, also werden durch Literale gesetzt. Wieso willst du diese dann auf Gültigkeit prüfen? Wenn die falsch wären, dann müsstest du einen anderen Startwert geben.</p>
<p>Die Position jedoch sollte, da sie von ausserhalb kommt, auch dort geprüft werden, denn dein Player weiss (was ja auch richtig ist) nichts von der Map auf/in der er sich befindet. Das muss vorher irgendwo geklärt/geprüft werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343336</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 04 Aug 2013 12:25:42 GMT</pubDate></item><item><title><![CDATA[Reply to Alle Membervariablen als Parameter im Constructor ausgeben - geht das? on Sun, 04 Aug 2013 12:32:53 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>vielen Danke für deine Antwort. Mit dem *this funktioniert das Programm so, wie ich es will.</p>
<p>Der Sinn der Vorgehensweise sei mal dahin gestellt. Ich weiß, dass das im Ernstfall besser gelöst werden sollte. Ich wollte nur nach einer entsprechenden Methode gucken, um dann, wenn es gebraucht werden sollte, alle Membervariablen zu übergeben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Aber danke für den Hinweis <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>
<p>Gruß,<br />
FunkyPeanut</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343338</guid><dc:creator><![CDATA[FunkyPeanut]]></dc:creator><pubDate>Sun, 04 Aug 2013 12:32:53 GMT</pubDate></item><item><title><![CDATA[Reply to Alle Membervariablen als Parameter im Constructor ausgeben - geht das? on Sun, 04 Aug 2013 15:53:51 GMT]]></title><description><![CDATA[<p>isInMap ist doch eine Memberfunktion. Da brauchst du nichts mitgeben, die kann direkt auf alles zugreifen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2343375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2343375</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 04 Aug 2013 15:53:51 GMT</pubDate></item></channel></rss>