<?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[Unterobjekt zuweisen]]></title><description><![CDATA[<pre><code>struct Base { ... };
struct Derived : Base { ... };

int main()
{
    Base b;
    Derived d;

    static_cast&lt;Base&amp;&gt;(d) = b;    
}
</code></pre>
<p>Unter welchen Umständen ist das Verhalten hier definiert? (POD, Polymorphie usw)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/317432/unterobjekt-zuweisen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 22:04:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317432.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 08 Jun 2013 12:55:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unterobjekt zuweisen on Sat, 08 Jun 2013 12:55:55 GMT]]></title><description><![CDATA[<pre><code>struct Base { ... };
struct Derived : Base { ... };

int main()
{
    Base b;
    Derived d;

    static_cast&lt;Base&amp;&gt;(d) = b;    
}
</code></pre>
<p>Unter welchen Umständen ist das Verhalten hier definiert? (POD, Polymorphie usw)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2329387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2329387</guid><dc:creator><![CDATA[Der Weiser]]></dc:creator><pubDate>Sat, 08 Jun 2013 12:55:55 GMT</pubDate></item><item><title><![CDATA[Reply to Unterobjekt zuweisen on Sat, 08 Jun 2013 13:42:58 GMT]]></title><description><![CDATA[<p>Wenn ein passender Base::operator= existiert und wohldefiniertes Verhalten hat (also nicht kaputt ist). Allerdings wird nur dem Basisobjekt von d der Wert von b zugewiesen, so dass die Sinnhaftigkeit dieses Vorgehens bezweifelt werden darf.</p>
<p>Konkret:</p>
<pre><code class="language-cpp">struct base {
  int x;
  int y;
};

struct derived : base {
  derived(int x, int y, int z) : base({x, y}), z(z) { }

  int z;
};

int main() {
  base b{ 1, 2 };
  derived d{ 3, 4, 5 };

  static_cast&lt;base&amp;&gt;(d) = b;

  // d ist { 1, 2, 5 }
}
</code></pre>
<p>Das ist verwandt mit dem Slicing-Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2329396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2329396</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sat, 08 Jun 2013 13:42:58 GMT</pubDate></item></channel></rss>