<?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[Programmcode C++]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>ich habe hier ein kleines Verständnisproblem mit dem Programmcode. Ich weiß was als Ausgabe rauskommt, aber ich würde gerne wissen, was im main() zeile für zeile passiert. Könntet ihr mir für jede Zeile ein Kommentar abgeben? Wäre sehr nett von euch. Danke im voraus. <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>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;

class X
{     private:
         char* s;
      public:
         X(char *p) { s = p;} ;
         virtual void print() { cout &lt;&lt; s ; }
} ;

class Y : public X
{     private:
         int n ;
      public:
         Y(char* p, int i) : X(p) {n = i ; };
         void inc() { n++ ; } ;
         virtual void print()  {X::print() ; cout &lt;&lt; &quot; &quot; &lt;&lt; n ; } ;
} ;

int main()
{     X** a = new X*[10] ;
      a[0] = new X(&quot;Meier&quot;) ;
      Y* y = new Y(&quot;Jakobsen&quot;, 24) ;
      a[1] = y;
      X* x = (X*) a[1] ;
      a[2] = x ;
      Y z = *y ;
      a[3] = &amp;z ;
      y-&gt;inc() ;
      for ( int i=0 ; i&lt;4 ; i++)  { a[i]-&gt;print() ; cout &lt;&lt; endl ; } ;
}
</code></pre>
<p>Die Ausgabe lautet:</p>
<p>Meier<br />
Jakobsen 25<br />
Jakobsen 25<br />
Jakobsen 24</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263409/programmcode-c</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 19:16:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263409.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 20 Mar 2010 13:08:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programmcode C++ on Sat, 20 Mar 2010 13:08:02 GMT]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>ich habe hier ein kleines Verständnisproblem mit dem Programmcode. Ich weiß was als Ausgabe rauskommt, aber ich würde gerne wissen, was im main() zeile für zeile passiert. Könntet ihr mir für jede Zeile ein Kommentar abgeben? Wäre sehr nett von euch. Danke im voraus. <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>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;

class X
{     private:
         char* s;
      public:
         X(char *p) { s = p;} ;
         virtual void print() { cout &lt;&lt; s ; }
} ;

class Y : public X
{     private:
         int n ;
      public:
         Y(char* p, int i) : X(p) {n = i ; };
         void inc() { n++ ; } ;
         virtual void print()  {X::print() ; cout &lt;&lt; &quot; &quot; &lt;&lt; n ; } ;
} ;

int main()
{     X** a = new X*[10] ;
      a[0] = new X(&quot;Meier&quot;) ;
      Y* y = new Y(&quot;Jakobsen&quot;, 24) ;
      a[1] = y;
      X* x = (X*) a[1] ;
      a[2] = x ;
      Y z = *y ;
      a[3] = &amp;z ;
      y-&gt;inc() ;
      for ( int i=0 ; i&lt;4 ; i++)  { a[i]-&gt;print() ; cout &lt;&lt; endl ; } ;
}
</code></pre>
<p>Die Ausgabe lautet:</p>
<p>Meier<br />
Jakobsen 25<br />
Jakobsen 25<br />
Jakobsen 24</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871615</guid><dc:creator><![CDATA[Haki]]></dc:creator><pubDate>Sat, 20 Mar 2010 13:08:02 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode C++ on Sat, 20 Mar 2010 13:44:18 GMT]]></title><description><![CDATA[<p>Wo hast du denn das grausame Stück Code her?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871633</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sat, 20 Mar 2010 13:44:18 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode C++ on Sat, 20 Mar 2010 14:18:59 GMT]]></title><description><![CDATA[<p>Ist eins zu eins aus einer alten Klausur. Als ich es compilieren wollte hat der compiler immer gemeckert!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871636</guid><dc:creator><![CDATA[Haki]]></dc:creator><pubDate>Sat, 20 Mar 2010 14:18:59 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode C++ on Sat, 20 Mar 2010 14:40:14 GMT]]></title><description><![CDATA[<p>Ich habe mal versucht, es verständlich zu erläutern. Ist nicht wirklich übersichtlich geworden...</p>
<pre><code class="language-cpp">int main()
{     X** a = new X*[10]; // a ist Zeiger auf einen Array von 10 Zeigern auf X
      a[0] = new X(&quot;Meier&quot;); // Eine neue Instanz von X wird erstellt und deren Adresse im ersten Index von a gespeichert
      Y* y = new Y(&quot;Jakobsen&quot;, 24); // Ein Zeiger auf ein Y wird erstellt, dabei wird der gegebene Konstruktor verwendet
      a[1] = y; // Der vorher erstellte Zeiger auf Y wird im zweiten Index auf A gespeichert
      X* x = (X*) a[1] ; // a[1], welches einen Zeiger auf ein Y enthält, wird auf einen Zeiger auf ein X konvertiert, die Zeiger zeigen also auf das selbe Objekt
// man hätte hier auch einfach X* x = a[1] schreiben können, da lediglich ein Zeiger auf das Unterobjekt X von Y übergeben wird 
      a[2] = x ; // Ergebnis der Konvertierung wird in a[2] gespeichert
      Y z = *y ; // Das Objekt z wird mit einer Kopie des Objekts auf das y zeigt initialisiert
      a[3] = &amp;z ; // a[3] wird die Adresse von z übergeben
      y-&gt;inc() ; // die Funktion inc() wird über das Objekt, auf das y zeigt aufgerufen
      for ( int i=0 ; i&lt;4 ; i++)  { a[i]-&gt;print() ; cout &lt;&lt; endl ; } ;
	  // --------- Schleife aufgeschlüsselt ------------------
	  // a[0]-&gt;print(): a[0] ist ein Zeiger auf ein X, das mit &quot;Meier&quot; initialisiert wurde, es wird also &quot;Meier&quot; ausgegeben 
	  // a[1]-&gt;print(): a[1] ist ein Zeiger auf ein Y, das mit &quot;Jakobsen&quot; und 24 initialisiert wurde
	  //			    durch den Aufruf y-&gt;inc() wird 24 zu 25, es wird also &quot;Jakobsen 25&quot; ausgegeben
	  // a[2]-&gt;print(): a[2] ist ein Zeiger auf ein X, welches aber &quot;eigentlich&quot; das Y aus a[1] war, also wird wegen Polymorphie Y::print() aufgerufen
	  //				mit dem Ergebnis das &quot;Jakobsen 25&quot; ausgegeben wird
	  // a[3]-&gt;print(): a[3] wurde mit einer Kopie des Objektes, auf das y zeigt, initialisiert, bevor y-&gt;int() aufgerufen wurde, es wird deswegen
	  //				noch &quot;Jakobsen 24&quot; ausgegeben
}
</code></pre>
<blockquote>
<p>Als ich es compilieren wollte hat der compiler immer gemeckert!</p>
</blockquote>
<p>Das Problem ist nur, dass &quot;cout&quot; verwendet wird, ohne vorher &quot;using namespace std;&quot; zu schreiben.</p>
<p>Ich hoffe es hilft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871643</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Sat, 20 Mar 2010 14:40:14 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode C++ on Sat, 20 Mar 2010 14:52:37 GMT]]></title><description><![CDATA[<p>... schrieb:</p>
<blockquote>
<blockquote>
<p>Als ich es compilieren wollte hat der compiler immer gemeckert!</p>
</blockquote>
<p>Das Problem ist nur, dass &quot;cout&quot; verwendet wird, ohne vorher &quot;using namespace std;&quot; zu schreiben.</p>
<p>Ich hoffe es hilft.</p>
</blockquote>
<p>Das Problem ist eher dass iostream.h veraltet ist - den gibt es nimmer! Das heißt jetzt nur iostream, und dann gibts auch den namespace std.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871647</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sat, 20 Mar 2010 14:52:37 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode C++ on Sat, 20 Mar 2010 14:53:21 GMT]]></title><description><![CDATA[<blockquote>
<p>Das Problem ist nur, dass &quot;cout&quot; verwendet wird, ohne vorher &quot;using namespace std;&quot; zu schreiben.</p>
</blockquote>
<p>Da er den veralteten Header &lt;iostream**.h**&gt; verwendet macht das nichts. Zweimal falsch ist in diesem Fall gleich richtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871648</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Sat, 20 Mar 2010 14:53:21 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode C++ on Sat, 20 Mar 2010 15:26:47 GMT]]></title><description><![CDATA[<p>danke an euch alle <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="👍"
    /> <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/1871666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871666</guid><dc:creator><![CDATA[Haki]]></dc:creator><pubDate>Sat, 20 Mar 2010 15:26:47 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode C++ on Sat, 20 Mar 2010 15:34:05 GMT]]></title><description><![CDATA[<p>Haki schrieb:</p>
<blockquote>
<p>Ist eins zu eins aus einer alten Klausur. Als ich es compilieren wollte hat der compiler immer gemeckert!</p>
</blockquote>
<ol>
<li>Sind denn neuere Klausuren immer noch in dem Stil? Hast du da ein paar Beispiele?<br />
Das ist ja wie gesagt grausam...<br />
* Polymorphe Objekte über Basisklassenzeiger verwalten, ohne virtuellem Destruktor.<br />
* Kein Kopierkonstruktor/Zuweisungsoperator trotz Member als Zeiger.<br />
* ein char* mit einem const char* initialisieren (nur Zeigerübergabe). Versuch mal einen einzelnen char zu verändern:</li>
</ol>
<pre><code class="language-cpp">class X {
 /// code

    void fail() {
        s[0] = 's';
    }
};
</code></pre>
<p>Das gibt nen fetten Segfault!<br />
* Adresse auf ein temporäres Objekt in einem Array speichern...<br />
* usw.</p>
<p>Wenn die alle so sind, würd ich mir nen anderen Kurs suchen <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="😃"
    /> (geht wohl eher schlecht...)</p>
<ol start="2">
<li>Wenn du einen Fehler bekommst und damit nichts anfangen kannst poste den das nächste mal bitte mit, hier können die meisten was damit anfangen <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="🙂"
    /></li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1871671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871671</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sat, 20 Mar 2010 15:34:05 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode C++ on Tue, 23 Mar 2010 13:24:25 GMT]]></title><description><![CDATA[<p>leider habe ich keine beispiele mehr.<br />
so wie ich gehört habe hat sich das programmcodebeispiel auch geändert. zum glück auch <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="😃"
    /> !!!<br />
ich werde versuchen demnächst das berichtigte programmcode zu compilieren und dann nochmal hier posten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1872935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872935</guid><dc:creator><![CDATA[Haki]]></dc:creator><pubDate>Tue, 23 Mar 2010 13:24:25 GMT</pubDate></item></channel></rss>