<?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[Konstruktoren]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich würde gerne ein Programm schreiben, welches einen Konstruktor, Destruktor, Kopierkonstruktor und den Zuweisungsoperator enthält. Weiters soll über die Methode anzahlInstanzen() die aktuelle Anzahl an Instanzen ausgegeben werden.</p>
<p>Das ist mein Ansatz:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;Klasse.h&quot;
using namespace std;

Klasse::Klasse(){

	klassenwert = 1;
	anzahl++;
}

Klasse::~Klasse(){

	anzahl--;
	if(anzahl &lt; 0) anzahl = 0;

}

unsigned int Klasse::anzahlInstanzen(){

	return anzahl;

}

Klasse Klasse::operator+(const Klasse&amp; b){

	this-&gt;klassenwert = this-&gt;klassenwert + b.klassenwert;

}

Klasse Klasse::operator+(int wert){

	this-&gt;klassenwert = this-&gt;klassenwert + wert;
</code></pre>
<p>Klasse:</p>
<pre><code>class Klasse{

	int static anzahl;
	int klassenwert;

	public:

	Klasse();
	~Klasse();

	unsigned int anzahlInstanzen();
	Klasse operator+(const Klasse&amp;);
	Klasse operator+(int wert);

};
</code></pre>
<p>Ich verstehe nicht ganz, wie ich die Variable anzahl am Besten initialisieren soll, beziehungsweise wo ich sie auf 0 setzen kann. Ebenfalls erscheint eine Fehlermeldung &quot;Nicht definierter Verweis&quot; aufgrund der Variable.</p>
<p>Darüber hinaus würde ich noch gerne wissen, wie genau der Kopierkonstruktor definiert wird. Also wie wird dieser aufgerufen, und soll dieser einfach den Inhalt eines Klassenobjekts in ein neu erstelltes Klassenobjekt kopieren?</p>
<p>Würde mich wie immer sehr freuen, wenn mir jemand weiterhilft.<br />
Vielen Dank</p>
<p>LG hackhack1234</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/338419/konstruktoren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 15:06:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338419.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Jun 2016 14:40:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktoren on Tue, 14 Jun 2016 14:40:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich würde gerne ein Programm schreiben, welches einen Konstruktor, Destruktor, Kopierkonstruktor und den Zuweisungsoperator enthält. Weiters soll über die Methode anzahlInstanzen() die aktuelle Anzahl an Instanzen ausgegeben werden.</p>
<p>Das ist mein Ansatz:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;Klasse.h&quot;
using namespace std;

Klasse::Klasse(){

	klassenwert = 1;
	anzahl++;
}

Klasse::~Klasse(){

	anzahl--;
	if(anzahl &lt; 0) anzahl = 0;

}

unsigned int Klasse::anzahlInstanzen(){

	return anzahl;

}

Klasse Klasse::operator+(const Klasse&amp; b){

	this-&gt;klassenwert = this-&gt;klassenwert + b.klassenwert;

}

Klasse Klasse::operator+(int wert){

	this-&gt;klassenwert = this-&gt;klassenwert + wert;
</code></pre>
<p>Klasse:</p>
<pre><code>class Klasse{

	int static anzahl;
	int klassenwert;

	public:

	Klasse();
	~Klasse();

	unsigned int anzahlInstanzen();
	Klasse operator+(const Klasse&amp;);
	Klasse operator+(int wert);

};
</code></pre>
<p>Ich verstehe nicht ganz, wie ich die Variable anzahl am Besten initialisieren soll, beziehungsweise wo ich sie auf 0 setzen kann. Ebenfalls erscheint eine Fehlermeldung &quot;Nicht definierter Verweis&quot; aufgrund der Variable.</p>
<p>Darüber hinaus würde ich noch gerne wissen, wie genau der Kopierkonstruktor definiert wird. Also wie wird dieser aufgerufen, und soll dieser einfach den Inhalt eines Klassenobjekts in ein neu erstelltes Klassenobjekt kopieren?</p>
<p>Würde mich wie immer sehr freuen, wenn mir jemand weiterhilft.<br />
Vielen Dank</p>
<p>LG hackhack1234</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2498818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2498818</guid><dc:creator><![CDATA[hackhack1234]]></dc:creator><pubDate>Tue, 14 Jun 2016 14:40:39 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren on Tue, 14 Jun 2016 14:58:16 GMT]]></title><description><![CDATA[<p>hackhack1234 schrieb:</p>
<blockquote>
<p>Ich würde gerne ein Programm schreiben,</p>
</blockquote>
<p>Übersetzt: Meine Hausaufgabe ist es, ein Programm zu schreiben,</p>
<p>hackhack1234 schrieb:</p>
<blockquote>
<p>Ich verstehe nicht ganz, wie ich die Variable anzahl am Besten initialisieren soll, beziehungsweise wo ich sie auf 0 setzen kann. Ebenfalls erscheint eine Fehlermeldung &quot;Nicht definierter Verweis&quot; aufgrund der Variable.</p>
</blockquote>
<pre><code>int Klasse::anzahl = 0;

Klasse::Klasse(){

	klassenwert = 1;
	anzahl++;
}
</code></pre>
<p>hackhack1234 schrieb:</p>
<blockquote>
<p>Darüber hinaus würde ich noch gerne wissen, wie genau der Kopierkonstruktor definiert wird.</p>
</blockquote>
<p>Du kennst google?</p>
<p>hackhack1234 schrieb:</p>
<blockquote>
<p>Also wie wird dieser aufgerufen,</p>
</blockquote>
<p>Aufrufen ist nicht definieren.</p>
<p>hackhack1234 schrieb:</p>
<blockquote>
<p>und soll dieser einfach den Inhalt eines Klassenobjekts in ein neu erstelltes Klassenobjekt kopieren?</p>
</blockquote>
<p>Diese Interpretation bietet sich bei <strong>Kopier</strong>konstruktor doch an, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2498821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2498821</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 14 Jun 2016 14:58:16 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren on Tue, 14 Jun 2016 16:56:12 GMT]]></title><description><![CDATA[<p>Ok, danke für die sarkastischen Antworten <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>Hast du vielleicht noch einen Tipp für die Variable anzahl?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2498849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2498849</guid><dc:creator><![CDATA[hackhack1234]]></dc:creator><pubDate>Tue, 14 Jun 2016 16:56:12 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren on Tue, 14 Jun 2016 17:42:50 GMT]]></title><description><![CDATA[<p>steht doch da, wenn auch etwas kryptisch.</p>
<p>statische variablen musst du außerhalb der klasse initialisieren. in diesem fall mit int Klasse::anzahl=0;</p>
<p>danach kannst sie im konstruktor inkrementieren und im destruktor dekrementieren.</p>
<p>edit:<br />
Der Kopierkonstruktor wird normaler Weise so erstellt</p>
<pre><code>Klasse(Klasse andereklasse)
{
klassenelement=andereklasse.klassenelement;
}
</code></pre>
<p>Aufrufen kannst du ihn mit</p>
<pre><code>Klasse klasse(andereklasse);
</code></pre>
<p>Dieses this-&gt;klasse kannst du auch weg lassen, indem du einfach den Parametern des Konstruktors andere (verkürzte) Namen gibst, also z.B.</p>
<pre><code>Klasse(int p)
{
paramaeter=p;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2498852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2498852</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 14 Jun 2016 17:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren on Tue, 14 Jun 2016 17:54:02 GMT]]></title><description><![CDATA[<p>hackhack1234 schrieb:</p>
<blockquote>
<pre><code>Klasse::~Klasse(){
	anzahl--;
	if(anzahl &lt; 0) anzahl = 0;
}
</code></pre>
</blockquote>
<p>Der war gut. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2498861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2498861</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 14 Jun 2016 17:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren on Tue, 14 Jun 2016 17:56:40 GMT]]></title><description><![CDATA[<p>Ok danke, dass hat mir sehr weiter geholfen, werde es gleich umsetzen, vielen Dank! <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/2498862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2498862</guid><dc:creator><![CDATA[hackhack1234]]></dc:creator><pubDate>Tue, 14 Jun 2016 17:56:40 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren on Tue, 14 Jun 2016 18:46:41 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>hackhack1234 schrieb:</p>
<blockquote>
<pre><code>Klasse::~Klasse(){
	anzahl--;
	if(anzahl &lt; 0) anzahl = 0;
}
</code></pre>
</blockquote>
<p>Der war gut. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Lel. Was ist, wenn Sonnenwinde deine Bits umherflippen? Musst du alles einberechnen.</p>
<p>Ansonsten empfiehlt es sich, im Kopieroperator/Konstruktor das Argument als const Referenz zu definieren, sonst würde das Objekt, welches du einem anderen zuweisen möchtest, in das Argument kopiert und das endlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2498866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2498866</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Tue, 14 Jun 2016 18:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren on Tue, 14 Jun 2016 22:10:45 GMT]]></title><description><![CDATA[<p>Hoppla, das war wohl ein Denkfehler <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2498878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2498878</guid><dc:creator><![CDATA[hackhack1234]]></dc:creator><pubDate>Tue, 14 Jun 2016 22:10:45 GMT</pubDate></item></channel></rss>