<?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[passender Kopierkonstruktor gesucht]]></title><description><![CDATA[<pre><code>template &lt;typename T&gt;
class Number {

	T t;

public:

	Number( const T&amp; te = T() )
	 : t(te) {}
};

int main()
{
	Number&lt;int&gt; a;

	Number&lt;double&gt; b = a;  // kann nicht nicht konvertiert werden :(
}
</code></pre>
<p>Hallo Leute, ich suche fuer diese Template-Klasse einen passenden Kopierkonstruktor, der jeden Objekttyp von Number annehmen kann. Bin mir nicht mal sicher, ob es da ueberhaupt eine Loesung gibt..</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327898/passender-kopierkonstruktor-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 16:45:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327898.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Sep 2014 14:40:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 14:40:03 GMT]]></title><description><![CDATA[<pre><code>template &lt;typename T&gt;
class Number {

	T t;

public:

	Number( const T&amp; te = T() )
	 : t(te) {}
};

int main()
{
	Number&lt;int&gt; a;

	Number&lt;double&gt; b = a;  // kann nicht nicht konvertiert werden :(
}
</code></pre>
<p>Hallo Leute, ich suche fuer diese Template-Klasse einen passenden Kopierkonstruktor, der jeden Objekttyp von Number annehmen kann. Bin mir nicht mal sicher, ob es da ueberhaupt eine Loesung gibt..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416878</guid><dc:creator><![CDATA[nico_schumann]]></dc:creator><pubDate>Wed, 10 Sep 2014 14:40:03 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 15:05:28 GMT]]></title><description><![CDATA[<pre><code>template &lt;typename T&gt;
class Number {

	T t;

public:

	Number( const T&amp; te = T() )
	 : t(te) {}

	template &lt;typename U&gt;
	Number( const Number&lt;U&gt;&amp; x )
	 : t(x.value()) {} // direkter Zugriff auf t erfordert eine zusätzliche friend-Deklaration, sonst

	T value() const
	{ return t; }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2416885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416885</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 10 Sep 2014 15:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 15:26:27 GMT]]></title><description><![CDATA[<p>Danke, wieder was gelernt. Dass auch innerhalb von Klassen eigene Templates definiert werden koennen war mir neu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416895</guid><dc:creator><![CDATA[nico_schumann]]></dc:creator><pubDate>Wed, 10 Sep 2014 15:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 16:43:37 GMT]]></title><description><![CDATA[<p>nico_schumann schrieb:</p>
<blockquote>
<p>Danke, wieder was gelernt. Dass auch innerhalb von Klassen eigene Templates definiert werden koennen war mir neu.</p>
</blockquote>
<p>Das nennt sich Membertemplates.<br />
Und übrigens:<br />
Schreibst du nur:</p>
<pre><code>template &lt;typename U&gt;
Number( const Number&lt;U&gt;&amp; x )
</code></pre>
<p>gibt es keinen Kopierkonstruktor, da der aus einem Template nie generiert wird.<br />
Der Compiler generiert also einen für dich.<br />
Das nur als Hinweis, falls der Kopierkonstruktor einen speziellen Job hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416910</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 10 Sep 2014 16:43:37 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 16:46:19 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>direkter Zugriff auf t erfordert eine zusätzliche friend-Deklaration, sonst kann dieser Konstruktor nur für U=T verwendet werden</p>
</blockquote>
<p>FTFY</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416911</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 10 Sep 2014 16:46:19 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 17:33:28 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>direkter Zugriff auf t erfordert eine zusätzliche friend-Deklaration, sonst kann dieser Konstruktor nur für U=T verwendet werden</p>
</blockquote>
<p>FTFY</p>
</blockquote>
<p>Den Konstruktor als friend deklarieren?<br />
Wie wuerde denn die friend-Deklaration des Konstruktors in diesem Fall aussehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416917</guid><dc:creator><![CDATA[nico_schumann]]></dc:creator><pubDate>Wed, 10 Sep 2014 17:33:28 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 17:43:13 GMT]]></title><description><![CDATA[<p>nico_schumann schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>direkter Zugriff auf t erfordert eine zusätzliche friend-Deklaration, sonst kann dieser Konstruktor nur für U=T verwendet werden</p>
</blockquote>
<p>FTFY</p>
</blockquote>
<p>Den Konstruktor als friend deklarieren?<br />
Wie wuerde denn die friend-Deklaration des Konstruktors in diesem Fall aussehen?</p>
</blockquote>
<p>Nicht Konstruktor, die Klasse für alle Instanziierungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416921</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 10 Sep 2014 17:43:13 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 17:48:38 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>nico_schumann schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>direkter Zugriff auf t erfordert eine zusätzliche friend-Deklaration, sonst kann dieser Konstruktor nur für U=T verwendet werden</p>
</blockquote>
<p>FTFY</p>
</blockquote>
<p>Den Konstruktor als friend deklarieren?<br />
Wie wuerde denn die friend-Deklaration des Konstruktors in diesem Fall aussehen?</p>
</blockquote>
<p>Nicht Konstruktor, die Klasse für alle Instanziierungen.</p>
</blockquote>
<p>??? Stehe grad auf dem Schlauch. Was meinst du damit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416922</guid><dc:creator><![CDATA[nico_schumann]]></dc:creator><pubDate>Wed, 10 Sep 2014 17:48:38 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 18:03:41 GMT]]></title><description><![CDATA[<p>nico_schumann schrieb:</p>
<blockquote>
<p>??? Stehe grad auf dem Schlauch. Was meinst du damit?</p>
</blockquote>
<p><strong>Edit</strong>: Huch, da hatte ich wohl einen Blackout. In die Definition sollte</p>
<pre><code>template&lt;typename&gt; friend class Number;
</code></pre>
<p>0<br />
damit du direkt auf das <code>t</code> jeder Spezialisierung zugreifen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416923</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 10 Sep 2014 18:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 18:11:24 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>In die Definition</p>
<pre><code>template&lt;typename&gt; friend class Number;
</code></pre>
<p>schreiben.</p>
</blockquote>
<p>Also wie hier:</p>
<pre><code>template &lt;typename T&gt;
class Number {

    T t;

public:

    Number( const T&amp; te = T() )
     : t(te) {}

    template &lt;typename U&gt;
    Number( const Number&lt;U&gt;&amp; x )
     : t(x.t) {}

    template&lt;typename&gt; friend class Number;
};
</code></pre>
<p>Jetzt funktionierts <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/2416925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416925</guid><dc:creator><![CDATA[nico_schumann]]></dc:creator><pubDate>Wed, 10 Sep 2014 18:11:24 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Wed, 10 Sep 2014 22:45:41 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>direkter Zugriff auf t erfordert eine zusätzliche friend-Deklaration, sonst kann dieser Konstruktor nur für U=T verwendet werden</p>
</blockquote>
<p>FTFY</p>
</blockquote>
<p>nochmal drüber nachdenken... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416959</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 10 Sep 2014 22:45:41 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Thu, 11 Sep 2014 06:58:15 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>direkter Zugriff auf t erfordert eine zusätzliche friend-Deklaration, sonst kann dieser Konstruktor nur für U=T verwendet werden</p>
</blockquote>
<p>FTFY</p>
</blockquote>
<p>nochmal drüber nachdenken... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Dass das Template bei direktem Zugriff auf <code>x.t</code> ohne <code>friend</code> -Deklaration nie funktionieren kann ist mir klar. Das liegt aber nur daran dass das Template nicht für U=T instantiiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2416975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2416975</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 11 Sep 2014 06:58:15 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Thu, 11 Sep 2014 12:00:39 GMT]]></title><description><![CDATA[<p>Du hast das Kommentar nicht verstanden.<br />
Er greift über den Getter zu, und im Kommentar steht dass &quot;friend gebraucht wird SONST&quot;. Also wenn man direkt zugreifen würde. Was er aber nicht macht. Weswegen er auch kein friend braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417025</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 11 Sep 2014 12:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Thu, 11 Sep 2014 12:50:54 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Ich dachte, der Satz war irgendwie abgeschnitten, entschuldigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417033</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 11 Sep 2014 12:50:54 GMT</pubDate></item><item><title><![CDATA[Reply to passender Kopierkonstruktor gesucht on Thu, 11 Sep 2014 13:16:05 GMT]]></title><description><![CDATA[<p>Hihi, kann ja mal passieren. Die Wortstellung ist auch etwas ... unüblich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417039</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 11 Sep 2014 13:16:05 GMT</pubDate></item></channel></rss>