<?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[Geht, trotz unpassendem Ctor]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenden Code:</p>
<p>D3DXCOLOR g_color1(1, 1, 1, 1);</p>
<p>D3DXCOLOR fooColor(g_color1);</p>
<p>D3DXCOLOR hat folgende Ctor:</p>
<pre><code class="language-cpp">D3DXCOLOR() {}
D3DXCOLOR( DWORD argb );
D3DXCOLOR( CONST FLOAT * );
D3DXCOLOR( CONST D3DXFLOAT16 * );
D3DXCOLOR( CONST D3DCOLORVALUE&amp; );
D3DXCOLOR( FLOAT r, FLOAT g, FLOAT b, FLOAT a );
</code></pre>
<p>Unsinnigerweise also keinen Ctor für einen Parameter vom Typ D3DXCOLOR.<br />
Meine Frage: Wieso geht der Code dennoch? <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="😕"
    /> (D3DCOLORVALUE ist ein struct mit 4 floats - aber der kann doch net einfach so das struct D3DXCOLOR in ein D3DCOLORVALUE casten, oder? oO )</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203327/geht-trotz-unpassendem-ctor</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 11:27:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203327.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Jan 2008 16:07:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Geht, trotz unpassendem Ctor on Mon, 21 Jan 2008 16:07:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenden Code:</p>
<p>D3DXCOLOR g_color1(1, 1, 1, 1);</p>
<p>D3DXCOLOR fooColor(g_color1);</p>
<p>D3DXCOLOR hat folgende Ctor:</p>
<pre><code class="language-cpp">D3DXCOLOR() {}
D3DXCOLOR( DWORD argb );
D3DXCOLOR( CONST FLOAT * );
D3DXCOLOR( CONST D3DXFLOAT16 * );
D3DXCOLOR( CONST D3DCOLORVALUE&amp; );
D3DXCOLOR( FLOAT r, FLOAT g, FLOAT b, FLOAT a );
</code></pre>
<p>Unsinnigerweise also keinen Ctor für einen Parameter vom Typ D3DXCOLOR.<br />
Meine Frage: Wieso geht der Code dennoch? <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="😕"
    /> (D3DCOLORVALUE ist ein struct mit 4 floats - aber der kann doch net einfach so das struct D3DXCOLOR in ein D3DCOLORVALUE casten, oder? oO )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440744</guid><dc:creator><![CDATA[CtorFrage]]></dc:creator><pubDate>Mon, 21 Jan 2008 16:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Geht, trotz unpassendem Ctor on Mon, 21 Jan 2008 16:20:27 GMT]]></title><description><![CDATA[<p>Der Compiler erstellt dir automatisch einen Kopierkonstruktor der eine Referenz auf ein Objekt desselben Typs entgegennimmmt.<br />
Auch erstellt der Compiler automatisch eine überladene Version des = Operators.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440757</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Mon, 21 Jan 2008 16:20:27 GMT</pubDate></item><item><title><![CDATA[Reply to Geht, trotz unpassendem Ctor on Mon, 21 Jan 2008 16:20:41 GMT]]></title><description><![CDATA[<p>Der &quot;Konstruktor&quot; den du suchst ist der Copy Konstruktur oder cctor mit folgender Signatur:</p>
<pre><code class="language-cpp">Class Klasse
{
   Klasse(const Klasse&amp; other);
}
</code></pre>
<p>Dieser wird wie der default ctor oder der dtor standardmäßig vom Compiler angelegt, sofern er nicht vom Benutzer deklariert wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440758</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Mon, 21 Jan 2008 16:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to Geht, trotz unpassendem Ctor on Mon, 21 Jan 2008 16:30:41 GMT]]></title><description><![CDATA[<p>Ah ok, Danke. <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="👍"
    /></p>
<p>Ich dachte da gibts ne Regel wie: &quot;sobald ich einen Ctor selber schreibe, erstellt mir der Compiler NICHT mehr diese paar Standard Ctor&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440764</guid><dc:creator><![CDATA[CtorFrage]]></dc:creator><pubDate>Mon, 21 Jan 2008 16:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to Geht, trotz unpassendem Ctor on Mon, 21 Jan 2008 16:38:22 GMT]]></title><description><![CDATA[<p>nur der Default-Ctor wird nichtmehr erzeugt bei eigenen Ctoren. Der Copy-Ctor wird immer erzeugt, wenn du ihn nicht deklarierst/definierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440770</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 21 Jan 2008 16:38:22 GMT</pubDate></item><item><title><![CDATA[Reply to Geht, trotz unpassendem Ctor on Mon, 21 Jan 2008 16:42:16 GMT]]></title><description><![CDATA[<p>CtorFrage schrieb:</p>
<blockquote>
<p>Ich dachte da gibts ne Regel wie: &quot;sobald ich einen Ctor selber schreibe, erstellt mir der Compiler NICHT mehr diese paar Standard Ctor&quot;.</p>
</blockquote>
<p>Wenn du einen eigenen Konstruktor schreibst wird nur der Standardkonstruktor nicht erzeugt.</p>
<p>Wenn du eine Klasse A hast:</p>
<pre><code class="language-cpp">class A
{
};
</code></pre>
<p>Wird daraus implizit folgendes generiert:</p>
<pre><code class="language-cpp">class A
{
    public:
        A();
        ~A();
        A(A const &amp;);
        A&amp; operator=(A const &amp;);
}
</code></pre>
<p>Wenn du etwas davon nicht erzeugt bekommen willst, deklariere es in dem private-Bereich und Implementiere es nicht. Beispiel:</p>
<pre><code class="language-cpp">class A
{
    private:
        A(A const &amp;); // Keine Implementierung!
        A&amp; operator=(A const &amp;); // Keine Implementierung!
};
</code></pre>
<p>Dies würde den Compiler dazu bringen nur noch den Standardkonstruktor und Destruktor zu generieren.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440771</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 21 Jan 2008 16:42:16 GMT</pubDate></item><item><title><![CDATA[Reply to Geht, trotz unpassendem Ctor on Tue, 22 Jan 2008 07:22:06 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Dies würde den Compiler dazu bringen nur noch den Standardkonstruktor und Destruktor zu generieren.</p>
</blockquote>
<p>Genau genommen nur den Dtor - die Klasse hat jetzt einen selbstdefinierten Konstruktor (selbst wenn er nicht implementiert ist) und damit wird (afair) auch der Default-Ctor wegrationalisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441043</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 22 Jan 2008 07:22:06 GMT</pubDate></item><item><title><![CDATA[Reply to Geht, trotz unpassendem Ctor on Sun, 15 Feb 2009 12:40:48 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>[...] Wird daraus implizit folgendes generiert: [...]</p>
</blockquote>
<p>Der Adressoperator wird auch noch automatisch generiert.</p>
<p>Der Komma-Operator glaube ich auch, aber der ist dann nicht mehr klassenspezifisch. Oder es wird einfach der Standard-Komma-Operator angewandt, bis man einen eigenen definiert, ganz sicher bin ich mir da nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664145</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:40:48 GMT</pubDate></item></channel></rss>