<?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[Konstruktor?]]></title><description><![CDATA[<p>Hallo<br />
unten habe ich ein kleines Quellcode der sich auf zeigerdefiniertes Objekt Erzeugung bezieht.<br />
Nun hab ich irgendwo mal gelesen, dass da was auch mit Konstruktor sein soll. Dann hab ich mir bisschen über Konstruktoren durch gelesen aber nun versteh ich da den zusammen hang nicht :S<br />
Kann mir das jemand erklären anhand dieses Quellcodes(siehe unten) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<pre><code class="language-cpp">void ErstellMitarbInfo()
{	
	MitarbInfo *mitarbPtr;  
        mitarbPtr = new MitarbInfo;

        mitarbPtr-&gt;m_gehalt = 2000.0;

        delete mitarbPtr; 
}
</code></pre>
<p>Freu mich über jede 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="🙂"
    /> danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/269997/konstruktor</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 20:02:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/269997.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Jul 2010 10:10:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:14:55 GMT]]></title><description><![CDATA[<p>Hallo<br />
unten habe ich ein kleines Quellcode der sich auf zeigerdefiniertes Objekt Erzeugung bezieht.<br />
Nun hab ich irgendwo mal gelesen, dass da was auch mit Konstruktor sein soll. Dann hab ich mir bisschen über Konstruktoren durch gelesen aber nun versteh ich da den zusammen hang nicht :S<br />
Kann mir das jemand erklären anhand dieses Quellcodes(siehe unten) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<pre><code class="language-cpp">void ErstellMitarbInfo()
{	
	MitarbInfo *mitarbPtr;  
        mitarbPtr = new MitarbInfo;

        mitarbPtr-&gt;m_gehalt = 2000.0;

        delete mitarbPtr; 
}
</code></pre>
<p>Freu mich über jede 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="🙂"
    /> danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921483</guid><dc:creator><![CDATA[ak133]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:14:55 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:17:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">new MitarbInfo;
</code></pre>
<p>ruft (unter anderem) den Konstruktor von MitarbInfo auf. Mehr kann man dazu nicht sagen. Was ist eigentlich deine Frage?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921490</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:17:25 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:23:30 GMT]]></title><description><![CDATA[<p>Also meine Frage war, wenn es ein Konstruktor in dem Programm gibt, dann wo in dem Quellcode und was macht er genau ?<br />
Und in welchem Zusammenhang stehen die zu einander zeigerdefiniertes Objekt Erzeugung und Konstruktoren?</p>
<p>mfg ak133</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921496</guid><dc:creator><![CDATA[ak133]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:34:20 GMT]]></title><description><![CDATA[<p>ak133 schrieb:</p>
<blockquote>
<p>Also meine Frage war, wenn es ein Konstruktor in dem Programm gibt, dann wo in dem Quellcode und was macht er genau ?</p>
</blockquote>
<p>Der Konstruktor wird immer dann aufgerufen, wenn ein neues Objekt erstellt wird, auf welche Weise auch immer. Das kann mit <code>new</code> geschehen oder auch wenn lokale Objekte erstellt werden. Das geschieht ganz automatisch, man braucht sich selbst nicht darum zu kümmern. Was der Konstruktor macht, hängt von dir ab. Wenn du keinen Konstruktor erstellst, wird automatisch einer erzeugt. Dieser ruft einfach die Konstruktoren aller Basisklassen und aller Member auf. In vielen Fällen ist das auch schon alles was man will. Will man mehr, muss man selber einen Konstruktor schreiben. Die Basisklassen und Member werden dabei aber trotzdem automatisch erzeugt, man braucht sich nicht selber darum zu kümmern (man kann jedoch gegebenenfalls beeinflussen, mit welchen Parametern sie erzeugt werden).</p>
<blockquote>
<p>Und in welchem Zusammenhang stehen die zu einander zeigerdefiniertes Objekt Erzeugung und Konstruktoren?</p>
</blockquote>
<p>Ich verstehe diesen Satz nicht.</p>
<p>Wenn du ein Objekt dynamisch erstellst wie in deinem Beispiel mit new, dann wird wie gesagt der Konstruktor durch das new aufgerufen.</p>
<p>Wenn du eine Klasse hast die selber einen (oder mehrere) Zeiger hält, dann ist dies einer der am häufigsten vorkommenden Gründe, warum man sich einen Konstruktor selber schreibt. Denn wenn ein Zeiger konstruiert wird, zeigt er noch auf nichts (zumindest auf nichts gültiges), man will aber gewöhnlich, dass er auf etwas zeigt. Daher schreibt man dann einen Konstruktor der Speicher anfordert und den Zeiger darauf zeigen lässt. (In diesem Fall sollte man auch mindestens noch einen Destruktor schreiben um den Speicher wieder freizugeben und in der Regel auch einen Kopierkonstruktor und einen Zuweisungsoperator).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921501</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:34:20 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:45:32 GMT]]></title><description><![CDATA[<p>Super danke schön das war jetzt alles schön und deutlich erklärt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>mfg ak133</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921505</guid><dc:creator><![CDATA[ak133]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:45:32 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:44:48 GMT]]></title><description><![CDATA[<p>oh entschuldigung noch eine Frage,<br />
du meintest man braucht noch ein Destruktor um den Speicher wieder frei zu geben.<br />
War das jetzt auf mein Programm bezogen? Weil in meinem Programm, wird doch da der Speicher mit delete wieder frei gegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921510</guid><dc:creator><![CDATA[ak133]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:44:48 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:48:18 GMT]]></title><description><![CDATA[<p>ak133 schrieb:</p>
<blockquote>
<p>oh entschuldigung noch eine Frage,<br />
du meintest man braucht noch ein Destruktor um den Speicher wieder frei zu geben.<br />
War das jetzt auf mein Programm bezogen? Weil in meinem Programm, wird doch da der Speicher mit delete wieder frei gegeben.</p>
</blockquote>
<p>kannst dir schenken wird am ende der function eh wieder frei gegeben <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921514</guid><dc:creator><![CDATA[no_code]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:48:18 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:50:44 GMT]]></title><description><![CDATA[<p>also ich meine der wird mit delete wieder frei gegeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921515</guid><dc:creator><![CDATA[ak133]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:50:44 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:53:07 GMT]]></title><description><![CDATA[<p>no_code schrieb:</p>
<blockquote>
<p>kannst dir schenken wird am ende der function eh wieder frei gegeben <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="😉"
    /></p>
</blockquote>
<p>also entweder wars falsch oder ich hab mich unklar ausgedrückt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921517</guid><dc:creator><![CDATA[no_c0de]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:53:07 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 10:55:00 GMT]]></title><description><![CDATA[<p>wenn du im Konstruktor Speicher anforderst (also der selbst wieder ein new stehen hast) dann musst du auch dafür sorgen, dass dieser Speicher wieder freigegeben wird, wenn er nicht mehr gebraucht wird. Also üblicherweise ein delete im Destruktor (der wird automatisch aufgerufen, wenn dein Objekt zerstört wird, in deinem Fall durch das delete)</p>
<p>In deinem Code-Stück aber soweit erstmal irrelevant</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921520</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Mon, 05 Jul 2010 10:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor? on Mon, 05 Jul 2010 11:04:26 GMT]]></title><description><![CDATA[<p>ak133 schrieb:</p>
<blockquote>
<p>oh entschuldigung noch eine Frage,<br />
du meintest man braucht noch ein Destruktor um den Speicher wieder frei zu geben.<br />
War das jetzt auf mein Programm bezogen? Weil in meinem Programm, wird doch da der Speicher mit delete wieder frei gegeben.</p>
</blockquote>
<p>Delete ruft auch den Destruktor auf. Das war aber nicht auf dein Beispiel bezogen, sondern auf den Fall, wo man selber in einer Klasse Speicher anfordert:</p>
<pre><code class="language-cpp">class foo
{
 private:
  int *bar;
 public:
  foo(): bar(new int){}    // Hier wird im Konstruktor Speicher angefordert
  ~foo():{delete bar;}     // Und den muss man ja auch irgendwo wieder freigeben
}

int main()
{
// Auf diese Weise wird der Speicher automatisch verwaltet. Egal ob man mit new delete arbeitet:
 foo *x = new foo;    // Speicher für ein neues foo wird angefordert, der Konstruktor fordert zudem auch Speicher für einen int an
 delete x;            // Und der speicher auf den x zeigt wird freigegeben, gleichzeitig wird auch der Speicher auf den x.bar zeigt durch den Destruktor von foo freigegeben.

// Das geht natürlich auch mit lokalen Objekten:
 {
  foo y;   // Speicher für y und über den Konstruktor auch für einen int
 }  // Und beim Verlassen des Gültigkeitsbereichs wird alles wieder freigegeben
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Beachte aber, dass dieses Beispiel nicht vollständig ist. Man muss sich bei dieser Konstruktion auch unbedingt noch um korrektes Verhalten beim<br />
Kopieren kümmern (also Kopierkonstruktor und Zuweisungsoperator selber schreiben).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921527</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 05 Jul 2010 11:04:26 GMT</pubDate></item></channel></rss>