<?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[Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe da ein Problem wo ich einfach nicht weiter kommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> und auch nicht gefunden habe was mir wirklich weiterhilft.</p>
<p>Ich möchte von einer Basiklasse ein Objektzeiger ausgeben, sodass ich bei dem aufruf.</p>
<pre><code>cout &lt;&lt; *AktuellesObjket &lt;&lt; endl;
</code></pre>
<p>die zugehörigen Attribute ausgegeben bekomme.</p>
<p>Das ist soweit alles noch einfach und ich bekomme auch den Namen den ich haben möchte raus.</p>
<p>Doch nun habe ich 3 Unterklassen die jeweils noch spezielle Attribute erhalten.<br />
Diese kann ich leider nicht mit dem überladen Operator ausgeben.</p>
<p>Kurzes Bespiel damit klar wird was ich meine.</p>
<p>Basisklasse ist Geraet: string name;<br />
Unterklasse1 Radio: float lautstaerke;<br />
Unterklasse2 Herd: double temperatur;</p>
<p>Nun habe ich versucht mit der Operatorüberladung in der Baisklasse Geraet</p>
<pre><code class="language-cpp">friend ostream&amp; operator &lt;&lt; (ostream&amp; os, AllgemeinesGeraet *pOp);
</code></pre>
<p>diese Ausgabe hinzubekommen. Doch leider komme ich aber nicht an die speziellen Attribute von Radio und Heizung ran.</p>
<p>Da ich zuerst versucht habe die Operatorüberladung als</p>
<pre><code class="language-cpp">virtual
</code></pre>
<p>zu programmieren wurde ich eins bessern belehrt da dies ja keine Methode von der Basisklasse ist und nicht funktioniert. So das ich keine Redefinition machen kann.</p>
<p>Kann mir irgendjemand einne Lichtblick schenken und mich erleuchten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /><br />
wie ich hinbekommen kann, dass ich auch an die Werte von meinen Unterklassen komme und die mit dem</p>
<pre><code class="language-cpp">ostream&amp; operator &lt;&lt;  ...
</code></pre>
<p>ausgeben kann.</p>
<p>Für hilfreichte Tipps und Anregungen .. wäre ich wirklich Dankbar.</p>
<p>schöne Grüße<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165721/objektzeiger-per-ostream-amp-operator-lt-lt-ausgeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 01:24:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165721.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Nov 2006 13:48:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Wed, 22 Nov 2006 13:48:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe da ein Problem wo ich einfach nicht weiter kommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> und auch nicht gefunden habe was mir wirklich weiterhilft.</p>
<p>Ich möchte von einer Basiklasse ein Objektzeiger ausgeben, sodass ich bei dem aufruf.</p>
<pre><code>cout &lt;&lt; *AktuellesObjket &lt;&lt; endl;
</code></pre>
<p>die zugehörigen Attribute ausgegeben bekomme.</p>
<p>Das ist soweit alles noch einfach und ich bekomme auch den Namen den ich haben möchte raus.</p>
<p>Doch nun habe ich 3 Unterklassen die jeweils noch spezielle Attribute erhalten.<br />
Diese kann ich leider nicht mit dem überladen Operator ausgeben.</p>
<p>Kurzes Bespiel damit klar wird was ich meine.</p>
<p>Basisklasse ist Geraet: string name;<br />
Unterklasse1 Radio: float lautstaerke;<br />
Unterklasse2 Herd: double temperatur;</p>
<p>Nun habe ich versucht mit der Operatorüberladung in der Baisklasse Geraet</p>
<pre><code class="language-cpp">friend ostream&amp; operator &lt;&lt; (ostream&amp; os, AllgemeinesGeraet *pOp);
</code></pre>
<p>diese Ausgabe hinzubekommen. Doch leider komme ich aber nicht an die speziellen Attribute von Radio und Heizung ran.</p>
<p>Da ich zuerst versucht habe die Operatorüberladung als</p>
<pre><code class="language-cpp">virtual
</code></pre>
<p>zu programmieren wurde ich eins bessern belehrt da dies ja keine Methode von der Basisklasse ist und nicht funktioniert. So das ich keine Redefinition machen kann.</p>
<p>Kann mir irgendjemand einne Lichtblick schenken und mich erleuchten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /><br />
wie ich hinbekommen kann, dass ich auch an die Werte von meinen Unterklassen komme und die mit dem</p>
<pre><code class="language-cpp">ostream&amp; operator &lt;&lt;  ...
</code></pre>
<p>ausgeben kann.</p>
<p>Für hilfreichte Tipps und Anregungen .. wäre ich wirklich Dankbar.</p>
<p>schöne Grüße<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179262</guid><dc:creator><![CDATA[einarmjoe]]></dc:creator><pubDate>Wed, 22 Nov 2006 13:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Wed, 22 Nov 2006 13:55:05 GMT]]></title><description><![CDATA[<p>Schau mal bei den Tutorials in Volkard's C++ Kurs.<br />
Dort wird dein Operator für ne andere Klasse überladen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179265</guid><dc:creator><![CDATA[|M|]]></dc:creator><pubDate>Wed, 22 Nov 2006 13:55:05 GMT</pubDate></item><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Wed, 22 Nov 2006 14:25:04 GMT]]></title><description><![CDATA[<p>Danke,<br />
aber das ist nicht das nachdem ich suche.<br />
Oder ich hab jetzt doch was übersehen, da ich nur eine operator gesehen habe der ausserhalb der Klasse überladen worden ist aber nicht für eine abgeleitete Klasse was ich benötige.<br />
Ich möchte ja auf das Attribut für die Basisklasse zurgreifen und gleichzeitig auf das Attribut der Subklasse. (mit getmethode)</p>
<p>Und da hilft mir so eine Umsetzung leider auch nichts, wenn mich jetzt nicht alles täuscht.</p>
<p>Grüße<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179298</guid><dc:creator><![CDATA[einarmjoe]]></dc:creator><pubDate>Wed, 22 Nov 2006 14:25:04 GMT</pubDate></item><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Wed, 22 Nov 2006 14:37:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class foo
{
public:
  virtual ~foo() { }
  virtual std::ostream&amp; print( std::ostream&amp; out ) const = 0;
};

std::ostream&amp; operator&lt;&lt;( std::ostream&amp; out, foo const&amp; f )
{
  return f.print(out);
}

std::ostream&amp; operator&lt;&lt;( std::ostream&amp; out, foo const* f )
{
  return f-&gt;print(out);
}

class bar : public foo
{
public:
  bar() : x_(42) { }
  virtual std::ostream&amp; print( std::ostream&amp; out ) const
  { return out &lt;&lt; &quot;bar with [x = \&quot;&quot; &lt;&lt; x_ &lt;&lt; &quot;\&quot;]&quot;; }

private:
  int x_;
};

class blubb : public foo
{
public:
  blubb() : y_(3.14) { }
  virtual std::ostream&amp; print( std::ostream&amp; out ) const
  { return out &lt;&lt; &quot;blubb with [y = \&quot;&quot; &lt;&lt; y_ &lt;&lt; &quot;\&quot;]&quot;; }

private:
  double y_;
};

int main()
{
  bar bar_;
  blubb blubb_;
  foo* stuff[] = {&amp;bar_, &amp;blubb_};

  for (std::size_t i = 0; i &lt; sizeof(stuff)/sizeof(stuff[0]); ++i) {
    //std::cout &lt;&lt; *stuff[i] &lt;&lt; '\n';
    std::cout &lt;&lt; stuff[i] &lt;&lt; '\n';
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1179307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179307</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Wed, 22 Nov 2006 14:37:41 GMT</pubDate></item><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Thu, 23 Nov 2006 11:43:34 GMT]]></title><description><![CDATA[<p>hi ich bin grade bei dem gleichen problem <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="😉"
    /> und habe versucht deine version zu implementieren. allerdings in unterschiedlichen *.h<br />
leider bekomm ich dann diese fehlermeldung.....<br />
benutze compiler: &quot;Visual c++ Expressedition 2005&quot; (alles in eine datei funktioniert)</p>
<pre><code>foo.obj : error LNK2005: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class foo const &amp;)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVfoo@@@Z) ist bereits in test2.obj definiert.
foo.obj : error LNK2005: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class foo const *)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PBVfoo@@@Z) ist bereits in test2.obj definiert.
E:\pg2_2006_07\loesungen\test2\Debug\test2.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
Das Buildprotokoll wurde unter &quot;file://e:\pg2_2006_07\loesungen\test2\test2\Debug\BuildLog.htm&quot; gespeichert.
test2 - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
</code></pre>
<p>edit:<br />
so jetzt hab ich eines noch gemacht:<br />
Die Option /FORCE gesetzt, die den Linker zwingt eine gültige EXE-Datei oder DLL zu erstellen, auch wenn auf ein Symbol verwiesen wird, das nicht oder mehrfach definiert ist. .. aber ob das so sinnig ist &quot;ich weiss net&quot; gibs net noch nee sinnvollere variante? weil ich hab jetzt 11 warnungen ... und damit fühl ich mich net wohl.. bin ja kein microsoftprogrammierer!! was meint ihr<br />
habt ihr noch ein tip?</p>
<pre><code>LINK : warning LNK4075: /INCREMENTAL wird aufgrund der Angabe von /FORCE ignoriert.
Heizung.obj : warning LNK4006: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class AllgemeinesGeraet const &amp;)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVAllgemeinesGeraet@@@Z) ist bereits in &quot;AllgemeinesGeraet.obj&quot; definiert; zweite Definition wird ignoriert.
Heizung.obj : warning LNK4006: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class AllgemeinesGeraet const *)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PBVAllgemeinesGeraet@@@Z) ist bereits in &quot;AllgemeinesGeraet.obj&quot; definiert; zweite Definition wird ignoriert.
Kaffeemaschine.obj : warning LNK4006: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class AllgemeinesGeraet const &amp;)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVAllgemeinesGeraet@@@Z) ist bereits in &quot;AllgemeinesGeraet.obj&quot; definiert; zweite Definition wird ignoriert.
Kaffeemaschine.obj : warning LNK4006: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class AllgemeinesGeraet const *)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PBVAllgemeinesGeraet@@@Z) ist bereits in &quot;AllgemeinesGeraet.obj&quot; definiert; zweite Definition wird ignoriert.
Praktikum_pg2_3.obj : warning LNK4006: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class AllgemeinesGeraet const &amp;)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVAllgemeinesGeraet@@@Z) ist bereits in &quot;AllgemeinesGeraet.obj&quot; definiert; zweite Definition wird ignoriert.
Praktikum_pg2_3.obj : warning LNK4006: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class AllgemeinesGeraet const *)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PBVAllgemeinesGeraet@@@Z) ist bereits in &quot;AllgemeinesGeraet.obj&quot; definiert; zweite Definition wird ignoriert.
Radio.obj : warning LNK4006: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class AllgemeinesGeraet const &amp;)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVAllgemeinesGeraet@@@Z) ist bereits in &quot;AllgemeinesGeraet.obj&quot; definiert; zweite Definition wird ignoriert.
Radio.obj : warning LNK4006: &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class AllgemeinesGeraet const *)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PBVAllgemeinesGeraet@@@Z) ist bereits in &quot;AllgemeinesGeraet.obj&quot; definiert; zweite Definition wird ignoriert.
E:\pg2_2006_07\loesungen\Praktikum_pg2_3\Debug\Praktikum_pg2_3.exe : warning LNK4088: Abbild wird aufgrund der Option /FORCE generiert; Abbild kann möglicherweise nicht ausgeführt werden.
Das Manifest wird eingebettet...
Das Buildprotokoll wurde unter &quot;file://e:\pg2_2006_07\loesungen\Praktikum_pg2_3\Praktikum_pg2_3\Debug\BuildLog.htm&quot; gespeichert.
Praktikum_pg2_3 - 0 Fehler, 11 Warnung(en)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1179862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179862</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Thu, 23 Nov 2006 11:43:34 GMT</pubDate></item><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Thu, 23 Nov 2006 12:08:25 GMT]]></title><description><![CDATA[<p><a href="https://www.google.de/search?&amp;q=Include%20Guards" rel="nofollow">Google: Include Guards</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179914</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 23 Nov 2006 12:08:25 GMT</pubDate></item><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Thu, 23 Nov 2006 12:12:00 GMT]]></title><description><![CDATA[<p>Ob Includeguards beim Linken mehrerer Objekte helfen? <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>
<p>Definiere freie Funktionen (es geht hier um die beiden operator&lt;&lt;) nich vollständig in der .h Datei, sondern in einer .cpp (oder markiere sie als inline). Dasselbe gilt für ausserhalb der Klassendefinition notierte Methoden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179919</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 23 Nov 2006 12:12:00 GMT</pubDate></item><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Thu, 23 Nov 2006 12:21:55 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Ob Includeguards beim Linken mehrerer Objekte helfen? <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>
<p>Definiere freie Funktionen (es geht hier um die beiden operator&lt;&lt;) nich vollständig in der .h Datei, sondern in einer .cpp (oder markiere sie als inline). Dasselbe gilt für ausserhalb der Klassendefinition notierte Methoden.</p>
</blockquote>
<p>&quot;INLINE&quot; &lt;&lt;&lt;&lt;&lt;geillll !! stimmt geht wunderbar dankkkkkkkkkkeeeeeeeeeeeeeeeeee.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179924</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Thu, 23 Nov 2006 12:21:55 GMT</pubDate></item><item><title><![CDATA[Reply to Objektzeiger per  ostream&amp;amp; operator &amp;lt;&amp;lt; ausgeben on Thu, 23 Nov 2006 12:52:35 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich wollte mich hier nur nochmal bei finix bedanken, dein Code hat mich erleuchtet.</p>
<p>Gruß<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179949</guid><dc:creator><![CDATA[einarmjoe]]></dc:creator><pubDate>Thu, 23 Nov 2006 12:52:35 GMT</pubDate></item></channel></rss>