<?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[Parent Constructer]]></title><description><![CDATA[<p>Hey Leute ich würde gerne wissen wieso das nicht funktioniert:</p>
<p>Ich habe hier eine funktion die die Klasse Obst erwartet</p>
<pre><code>void doSomething(Obst obst)
{

}
</code></pre>
<p>Nun wollte ich die Klasse übergeben</p>
<pre><code>class Obst
{
     Obst(std::string irgendWas)
}

class Apfel : public Obst
{
     Apfel(std::string irgendWas) : Obst(Irgendwas) 
}

registerThings()
{
     doSomething(new Apfel(&quot;lecker&quot;));
}
</code></pre>
<p>Weiss jemand warum das nicht klappt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332238/parent-constructer</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 10:58:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332238.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Apr 2015 10:12:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Parent Constructer on Fri, 17 Apr 2015 10:12:10 GMT]]></title><description><![CDATA[<p>Hey Leute ich würde gerne wissen wieso das nicht funktioniert:</p>
<p>Ich habe hier eine funktion die die Klasse Obst erwartet</p>
<pre><code>void doSomething(Obst obst)
{

}
</code></pre>
<p>Nun wollte ich die Klasse übergeben</p>
<pre><code>class Obst
{
     Obst(std::string irgendWas)
}

class Apfel : public Obst
{
     Apfel(std::string irgendWas) : Obst(Irgendwas) 
}

registerThings()
{
     doSomething(new Apfel(&quot;lecker&quot;));
}
</code></pre>
<p>Weiss jemand warum das nicht klappt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450572</guid><dc:creator><![CDATA[reba]]></dc:creator><pubDate>Fri, 17 Apr 2015 10:12:10 GMT</pubDate></item><item><title><![CDATA[Reply to Parent Constructer on Fri, 17 Apr 2015 10:21:31 GMT]]></title><description><![CDATA[<p>Weil Du einen Zeiger übergibst und kein Objekt. Das new ist an dieser Stelle unnötig, da es ein Stackobjekt genauso tun würde. Dann würde aber ein &quot;Slicing&quot; passieren (der Obst-Teil wird aus dem Apfel &quot;herausgeschnitten&quot;), weil die Funktion das Obst by-value und nicht als Referenz übernimmt.</p>
<p>This is not Java.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450575</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 17 Apr 2015 10:21:31 GMT</pubDate></item><item><title><![CDATA[Reply to Parent Constructer on Fri, 17 Apr 2015 10:29:17 GMT]]></title><description><![CDATA[<p>In dem gezeigten Code lassen sich die Objekte schon gar nicht konstruieren, weil die Konstruktoren private sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450576</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Fri, 17 Apr 2015 10:29:17 GMT</pubDate></item><item><title><![CDATA[Reply to Parent Constructer on Fri, 17 Apr 2015 10:37:10 GMT]]></title><description><![CDATA[<p>Das ist schon alles public.... ich habe den kopf aus dem kopf geschrieben und habe das schon Public gemacht <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>Danke @LordJaxon es funktioniert wenn ich ein stackobject mache</p>
<p>allerdings hätte ich da eine frage wie ich den Code noch &quot;verkürzen könnte&quot;</p>
<p>Bis jetzt müsste ich ja jedes &quot;obst&quot; so defenieren</p>
<pre><code>void registerThings()
{
    Apfel apfel(&quot;lecker&quot;);
    Banane banane(&quot;lecker&quot;);
    Orange orange(&quot;lecker&quot;);
    Melone melone(&quot;lecker&quot;);

    registerThing(apfel);
    registerThing(banane);
    registerThing(orange);
    registerThing(melone);
}

void registerThing()
{
    ...
}
</code></pre>
<p>gäbe es da nicht eine alternative?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450578</guid><dc:creator><![CDATA[reba]]></dc:creator><pubDate>Fri, 17 Apr 2015 10:37:10 GMT</pubDate></item><item><title><![CDATA[Reply to Parent Constructer on Fri, 17 Apr 2015 10:47:21 GMT]]></title><description><![CDATA[<pre><code>registerThing(Apfel{&quot;lecker&quot;});
</code></pre>
<p>Vergiss das mit dem slicing nicht. doSomething sollte jetzt so</p>
<pre><code>doSomething (const Obst&amp; obst);
</code></pre>
<p>aussehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2450580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2450580</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Fri, 17 Apr 2015 10:47:21 GMT</pubDate></item></channel></rss>