<?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[Klassen Hierarchie?]]></title><description><![CDATA[<p>Also, ich habe mutable und immutable Strings.</p>
<pre><code>class my_string_mutable : my_string{

}

class my_string_immutable : my_string{

}

my_string *getString(){
  if(is_immutable){
    return new my_string_immutable();
  }else{
    return new my_string_mutable();
  }
}
</code></pre>
<p>Da bekomm ich aber immer einen Fehler beim return type. Wie wird sowas gemacht <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/322252/klassen-hierarchie</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 10:30:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322252.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Dec 2013 19:14:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen Hierarchie? on Thu, 12 Dec 2013 19:14:52 GMT]]></title><description><![CDATA[<p>Also, ich habe mutable und immutable Strings.</p>
<pre><code>class my_string_mutable : my_string{

}

class my_string_immutable : my_string{

}

my_string *getString(){
  if(is_immutable){
    return new my_string_immutable();
  }else{
    return new my_string_mutable();
  }
}
</code></pre>
<p>Da bekomm ich aber immer einen Fehler beim return type. Wie wird sowas gemacht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2371432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371432</guid><dc:creator><![CDATA[junta]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:14:52 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Hierarchie? on Thu, 12 Dec 2013 19:21:20 GMT]]></title><description><![CDATA[<p>junta schrieb:</p>
<blockquote>
<p>Da bekomm ich aber immer einen Fehler beim return type. Wie wird sowas gemacht <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>
</blockquote>
<p>Nicht so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371433</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:21:20 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Hierarchie? on Thu, 12 Dec 2013 19:26:14 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>junta schrieb:</p>
<blockquote>
<p>Da bekomm ich aber immer einen Fehler beim return type. Wie wird sowas gemacht <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>
</blockquote>
<p>Nicht so.</p>
</blockquote>
<p><a href="http://i27.tinypic.com/339sw0g.gif" rel="nofollow">http://i27.tinypic.com/339sw0g.gif</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371435</guid><dc:creator><![CDATA[junta]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:26:14 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Hierarchie? on Thu, 12 Dec 2013 19:33:28 GMT]]></title><description><![CDATA[<p>Ersetze das Schlüsselwort <code>class</code> mit <code>struct</code> und es sollte gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371439</guid><dc:creator><![CDATA[c ist besser]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:33:28 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Hierarchie? on Thu, 12 Dec 2013 19:44:07 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class my_string_mutable : public my_string { ... };
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">struct my_string_mutable : my_string { ... };
</code></pre>
<p>Erklärung: Damit du ein Objekt einer Klasse als Objekt seiner Basisklasse behandeln kannst, musst du die Basisklasse sehen können. In einer Funktion, die nicht zur Klasse gehört und nicht per friend Einblick in ihre Interna nehmen kann, bedeutet das, dass die Basisklasse öffentlich (public) geerbt werden muss.</p>
<p>Dass das mit struct ohne ausdrückliches public geht, liegt daran, dass class und struct sich in C++ (ausschließlich) durch die Default-Sichtbarkeit unterscheiden. Bei struct ist sie public, bei class private -- d.h.</p>
<pre><code class="language-cpp">class  foo : bar { int x; }; // entspricht: struct foo : private bar { private: int x; };
struct foo : bar { int x; }; // entspricht: class  foo : public  bar { public:  int x; };
</code></pre>
<p>Übrigens solltest du darüber nachdenken, aus der Funktion keinen nackten, sondern einen Smart-Pointer (etwa std::unique_ptr&lt;my_string&gt; oder std::shared_ptr&lt;my_string&gt;) zurückzugeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371445</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:44:07 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Hierarchie? on Thu, 12 Dec 2013 19:57:56 GMT]]></title><description><![CDATA[<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371460</guid><dc:creator><![CDATA[junta]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:57:56 GMT</pubDate></item></channel></rss>