<?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[Typumwandlungskonstruktor]]></title><description><![CDATA[<p>huhu ihrs,</p>
<p>irgendwie steh ich grad aufm Schlauch (ist auch schon spät xD),<br />
aufjedenfall compiliert der Compiler das nicht.</p>
<p>Error:<br />
no matching function for call to <code>A::A(A)' initializing temporary from result of</code>A::A(int)'</p>
<p>Wieso kann er das tmp Object nicht in den Copy-Constructor reinstecken ??</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class A
{
    public:
        A(int i){}
        A(A&amp; ori) {}
};

int main() 
{ 
    A a = 1;
    return 0;
}
</code></pre>
<p>thx schonmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256790/typumwandlungskonstruktor</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 12:27:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256790.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Dec 2009 20:47:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Typumwandlungskonstruktor on Thu, 17 Dec 2009 20:47:56 GMT]]></title><description><![CDATA[<p>huhu ihrs,</p>
<p>irgendwie steh ich grad aufm Schlauch (ist auch schon spät xD),<br />
aufjedenfall compiliert der Compiler das nicht.</p>
<p>Error:<br />
no matching function for call to <code>A::A(A)' initializing temporary from result of</code>A::A(int)'</p>
<p>Wieso kann er das tmp Object nicht in den Copy-Constructor reinstecken ??</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class A
{
    public:
        A(int i){}
        A(A&amp; ori) {}
};

int main() 
{ 
    A a = 1;
    return 0;
}
</code></pre>
<p>thx schonmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824196</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 17 Dec 2009 20:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Typumwandlungskonstruktor on Thu, 17 Dec 2009 20:54:58 GMT]]></title><description><![CDATA[<p>Versuch mal <code>const A&amp;</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824205</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Thu, 17 Dec 2009 20:54:58 GMT</pubDate></item><item><title><![CDATA[Reply to Typumwandlungskonstruktor on Thu, 17 Dec 2009 21:03:04 GMT]]></title><description><![CDATA[<p>hrhr ok^^</p>
<p>aber wieso muss es const sein ?<br />
ist das tmp Object const ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824210</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 17 Dec 2009 21:03:04 GMT</pubDate></item><item><title><![CDATA[Reply to Typumwandlungskonstruktor on Thu, 17 Dec 2009 21:08:42 GMT]]></title><description><![CDATA[<p>Nein, aber temporäre Objekte können nur als Argumente von Funktionen mit Const-Referenz-Parametern genommen werden. Das liegt daran, dass in C++ nur Referenzen auf <code>const</code> temporäre Objekte binden können.</p>
<pre><code class="language-cpp">int&amp;  ref = 1; // Fehler
const int&amp; cref = 1; // OK
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1824212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824212</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 17 Dec 2009 21:08:42 GMT</pubDate></item><item><title><![CDATA[Reply to Typumwandlungskonstruktor on Thu, 17 Dec 2009 21:12:23 GMT]]></title><description><![CDATA[<p>ah okay thx @ nexus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824215</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 17 Dec 2009 21:12:23 GMT</pubDate></item><item><title><![CDATA[Reply to Typumwandlungskonstruktor on Thu, 17 Dec 2009 21:13:23 GMT]]></title><description><![CDATA[<p>Hmm ist interessant, dass der VS2008 Compiler es erlaubt ohne Warnung auszugeben, bei mir zumindest...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824216</guid><dc:creator><![CDATA[uhsuhz]]></dc:creator><pubDate>Thu, 17 Dec 2009 21:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to Typumwandlungskonstruktor on Thu, 17 Dec 2009 21:30:36 GMT]]></title><description><![CDATA[<p>joa VS 05 auch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824230</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 17 Dec 2009 21:30:36 GMT</pubDate></item><item><title><![CDATA[Reply to Typumwandlungskonstruktor on Thu, 17 Dec 2009 21:34:14 GMT]]></title><description><![CDATA[<p>Soviel ich weiss, ist die Erstellung eines temporären Objekts bei</p>
<pre><code class="language-cpp">A a = 1
</code></pre>
<p>im Gegensatz zu</p>
<pre><code class="language-cpp">A a(1);
</code></pre>
<p>implementierungsabhängig. Der Kopierkonstruktor muss nicht zwingend involviert sein.</p>
<p>Ein Beispiel aus dem C++-Standard; hier allerdings auf ein Objekt, das bereits Typ <code>X</code> hat, bezogen. Ich bin mir daher nicht ganz sicher, ob implizite Konvertierungen durch entsprechende Konstruktoren auch darunter fallen, aber meines Erachtens wäre dies logisch.</p>
<p>12.2/2 schrieb:</p>
<blockquote>
<p>[Example:</p>
<pre><code class="language-cpp">class X {
    // ...
public:
    // ...
    X(int);
    X(const X&amp;);
    ˜X();
};
X f(X);
void g()
{
    X a(1);
    X b = f(X(2));
    a = f(a);
}
</code></pre>
<p>Here, an implementation might use a temporary in which to construct X(2) before passing it to f() using X’s copy-constructor; alternatively, X(2) might be constructed in the space used to hold the argument. <strong>Also, a temporary might be used to hold the result of f(X(2)) before copying it to b using X’s copyconstructor; alternatively, f()’s result might be constructed in b.</strong> On the other hand, the expression a=f(a) requires a temporary for either the argument a or the result of f(a) to avoid undesired aliasing of a. ]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1824233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824233</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 17 Dec 2009 21:34:14 GMT</pubDate></item></channel></rss>