<?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[implizite typumwandlung]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe eine klasse</p>
<pre><code class="language-cpp">class iwas
{
     ...
};
</code></pre>
<p>Jetzt möchte ich diese Klasse so verwenden:</p>
<pre><code class="language-cpp">iwas object;
int i = 1 / object;
</code></pre>
<p>Dazu füge ich in iwas den operator int ein:</p>
<pre><code class="language-cpp">class iwas
{
     ...
     operator int()
     {
          return 1;
     }
};
</code></pre>
<p>Dann kann ich aber noch immer nur schreiben:</p>
<pre><code class="language-cpp">iwas object;
int i = 1 / int(object);
</code></pre>
<p>also muss ich explizit casten. Ich hätte aber gerne, dass der Aufruf von operator int() implizit, also aus dem kontext heraus geschieht. Für int kann ich ja auch nicht den operator/(iwas) oder einen konstruktor int(iwas) definieren.</p>
<p>Versteht man, was ich sagen will?^^</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183152/implizite-typumwandlung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 04:06:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183152.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 Jun 2007 09:01:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to implizite typumwandlung on Sat, 02 Jun 2007 09:01:24 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe eine klasse</p>
<pre><code class="language-cpp">class iwas
{
     ...
};
</code></pre>
<p>Jetzt möchte ich diese Klasse so verwenden:</p>
<pre><code class="language-cpp">iwas object;
int i = 1 / object;
</code></pre>
<p>Dazu füge ich in iwas den operator int ein:</p>
<pre><code class="language-cpp">class iwas
{
     ...
     operator int()
     {
          return 1;
     }
};
</code></pre>
<p>Dann kann ich aber noch immer nur schreiben:</p>
<pre><code class="language-cpp">iwas object;
int i = 1 / int(object);
</code></pre>
<p>also muss ich explizit casten. Ich hätte aber gerne, dass der Aufruf von operator int() implizit, also aus dem kontext heraus geschieht. Für int kann ich ja auch nicht den operator/(iwas) oder einen konstruktor int(iwas) definieren.</p>
<p>Versteht man, was ich sagen will?^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297022</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Sat, 02 Jun 2007 09:01:24 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Sat, 02 Jun 2007 09:22:07 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class foo
{
public:
	foo()
		: i( 100 )
	{}

	operator int() const
	{
		return i;
	}
private:
	int i;
};

int main()
{
	foo bar;
	float i;

	i = 1.f / bar;
	std::cout &lt;&lt; i;
	std::cin.get();
}
</code></pre>
<p>Geht ohne Probleme!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297035</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sat, 02 Jun 2007 09:22:07 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Sat, 02 Jun 2007 09:46:21 GMT]]></title><description><![CDATA[<p>Das schaffen die Oldtimer-Compiler (MSVC6 z.B.) nun mal nicht. Entweder was aktuelleres nehmen oder fleißig sein und casten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297043</guid><dc:creator><![CDATA[Superlexx]]></dc:creator><pubDate>Sat, 02 Jun 2007 09:46:21 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Sat, 02 Jun 2007 14:40:29 GMT]]></title><description><![CDATA[<p>ist minGW 3.4.2 zu alt? neueres gibt es ja nicht (auch wenn es schon GCC 4.2.0 gibt...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297172</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Sat, 02 Jun 2007 14:40:29 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Sat, 02 Jun 2007 22:05:39 GMT]]></title><description><![CDATA[<p>piXelshooter schrieb:</p>
<blockquote>
<p>ist minGW 3.4.2 zu alt? neueres gibt es ja nicht (auch wenn es schon GCC 4.2.0 gibt...)</p>
</blockquote>
<p>doch es gibt g++ 3.4.5</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297461</guid><dc:creator><![CDATA[..........]]></dc:creator><pubDate>Sat, 02 Jun 2007 22:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Sun, 03 Jun 2007 05:37:41 GMT]]></title><description><![CDATA[<p>Du kannst immer noch selbst einen Operator &quot;/&quot; definieren der auf einer Seite ein int nimmt und auf der anderen ein Objekt eines UDT:</p>
<pre><code class="language-cpp">class foo
{
    int m_i;
public:
    foo(int i) m_i(i) {}
    int to_int() const { return m_i; }
};

int operator / (int a, foo b)
{
   return a / b.to_int();
}

int operator / (foo a, int b)
{
   return a.to_int() / b;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1297535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297535</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 03 Jun 2007 05:37:41 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Sun, 03 Jun 2007 13:01:06 GMT]]></title><description><![CDATA[<p>Naja, wenn ich aber nicht jeden operator redefinieren muss, sondern das implizit umgewandelt wird, ist das natürlich schon was schöner, oder?<br />
va kann ich für eine Funktion myFunction(int) dann auch myFunction(object) schreiben. Da bleibt mir sonst ja nichts anderes außer casten.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10754">@David_pb</a>:<br />
Welchen compiler / Version benutzt denn du, dass es klappt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297715</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Sun, 03 Jun 2007 13:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Sun, 03 Jun 2007 13:31:39 GMT]]></title><description><![CDATA[<p>Visual C++ bei MS Visual Studio 2003.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297741</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 03 Jun 2007 13:31:39 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Sun, 03 Jun 2007 15:10:33 GMT]]></title><description><![CDATA[<p>hier gibt es doch bestimmt einige, die die gleiche minGW version haben wie ich? Könnte bitte mal einer testen, ob es bei ihm geht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297827</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Sun, 03 Jun 2007 15:10:33 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Mon, 04 Jun 2007 00:39:54 GMT]]></title><description><![CDATA[<p>Dann besorg dir doch einfach nen neueren Compiler!?!</p>
<p>Ich wollte nur darauf hinweisen dass du auch die Operatoren überladen kannst. Ist IMHO auch oft sauberer, ich bin kein Fan von impliziten Konvertierungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298169</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 04 Jun 2007 00:39:54 GMT</pubDate></item><item><title><![CDATA[Reply to implizite typumwandlung on Mon, 04 Jun 2007 00:47:29 GMT]]></title><description><![CDATA[<p>Mit g++ 4.0.0 geht es zumindest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298171</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 04 Jun 2007 00:47:29 GMT</pubDate></item></channel></rss>