<?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[Komplexe Konstruktor-Frage]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe eine eigene String-Klasse &quot;String&quot; geschrieben. Diese akzeptiert im Konstruktor einen char*. Wenn nun eine Funktion eine Instanz meiner eigenen &quot;String&quot;-Klasse erwartet, dann kann ich auch einen normalen char* übergeben, weil automatisch eine Instanz von &quot;String&quot; angelegt wird (da diese eben einen char* akzeptiert).</p>
<p>Ich habe weiters eine Klasse &quot;File&quot; für den Dateizugriff geschrieben. Diese verlangt im Konstruktor einen &quot;String&quot;, der den Dateinamen angibt.</p>
<p>Wenn nun eine Funktion ein &quot;File&quot; erwartet, dann kann ich dort ja auch einen &quot;String&quot; übergeben, da dann automatisch ein &quot;File&quot; erzeugt wird.</p>
<p>Jetzt kommt es aber: ich wollte nun an eine Funktion, die ein &quot;File&quot; erwartet, einen char* übergeben. Ich war der Meinung dass er automatisch den char* an den Konstruktor von &quot;String&quot; übergibt und im Anschluss das &quot;String&quot;-Objekt an den Konstruktor von &quot;File&quot; übergibt um das geforderte &quot;File&quot;-Objekt zu erzeugen.</p>
<p>Tut er aber nicht. Es kompiliert nicht weil nicht nicht casten kann. Geht diese &quot;Trick&quot; etwa nur über eine Stufe?</p>
<p>Ist das normal?</p>
<p>Danke!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136115/komplexe-konstruktor-frage</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 07:21:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136115.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Feb 2006 13:46:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Komplexe Konstruktor-Frage on Tue, 07 Feb 2006 13:46:52 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe eine eigene String-Klasse &quot;String&quot; geschrieben. Diese akzeptiert im Konstruktor einen char*. Wenn nun eine Funktion eine Instanz meiner eigenen &quot;String&quot;-Klasse erwartet, dann kann ich auch einen normalen char* übergeben, weil automatisch eine Instanz von &quot;String&quot; angelegt wird (da diese eben einen char* akzeptiert).</p>
<p>Ich habe weiters eine Klasse &quot;File&quot; für den Dateizugriff geschrieben. Diese verlangt im Konstruktor einen &quot;String&quot;, der den Dateinamen angibt.</p>
<p>Wenn nun eine Funktion ein &quot;File&quot; erwartet, dann kann ich dort ja auch einen &quot;String&quot; übergeben, da dann automatisch ein &quot;File&quot; erzeugt wird.</p>
<p>Jetzt kommt es aber: ich wollte nun an eine Funktion, die ein &quot;File&quot; erwartet, einen char* übergeben. Ich war der Meinung dass er automatisch den char* an den Konstruktor von &quot;String&quot; übergibt und im Anschluss das &quot;String&quot;-Objekt an den Konstruktor von &quot;File&quot; übergibt um das geforderte &quot;File&quot;-Objekt zu erzeugen.</p>
<p>Tut er aber nicht. Es kompiliert nicht weil nicht nicht casten kann. Geht diese &quot;Trick&quot; etwa nur über eine Stufe?</p>
<p>Ist das normal?</p>
<p>Danke!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988512</guid><dc:creator><![CDATA[ChrisR]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:46:52 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Konstruktor-Frage on Tue, 07 Feb 2006 13:50:42 GMT]]></title><description><![CDATA[<p>ChrisR schrieb:</p>
<blockquote>
<p>Geht diese &quot;Trick&quot; etwa nur über eine Stufe?</p>
</blockquote>
<p>Ja.</p>
<p>Ich halte es übrigens für keine gute Idee, anstelle eines Files einen String übergeben zu können. Ich würde den File-Konstruktor explicit deklarieren, damit das nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988516</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Konstruktor-Frage on Tue, 07 Feb 2006 13:51:57 GMT]]></title><description><![CDATA[<p>wenn du ne funktion<br />
foo(File x); hast und gibts dort foo(&quot;test.txt&quot;) an, dann guckt der Compiler nach ob File einen Konstrukor der Form File(const char*) hat - wenn nicht -&gt; fehler - geht also nicht über 2 &quot;Schichten&quot; - das würde zum verstädniss des codes nicht besonders beitragen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988518</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:51:57 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Konstruktor-Frage on Tue, 07 Feb 2006 13:52:47 GMT]]></title><description><![CDATA[<p>ChrisR schrieb:</p>
<blockquote>
<p>Tut er aber nicht. Es kompiliert nicht weil nicht nicht casten kann. Geht diese &quot;Trick&quot; etwa nur über eine Stufe?</p>
</blockquote>
<p>Ja, das ist im ANSI-Standard so festgelegt - nur EINE user-definierte Typumwandlung (Umwandlungs-Konstruktor bzw. -Operator) ist erlaubt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988519</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:52:47 GMT</pubDate></item></channel></rss>