<?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[int wird bool!?!!?]]></title><description><![CDATA[<pre><code class="language-cpp">class B
{
public:
	virtual void foo( int i )
	{
		std::cout &lt;&lt; &quot;B int\n&quot;;
	}
	virtual void foo( bool b )
	{
		std::cout &lt;&lt; &quot;B bool\n&quot;;
	}
};

class C : public B
{
public:
	virtual void foo( bool b )
	{
		std::cout &lt;&lt; &quot;C bool\n&quot;;
		B::foo(b);
	}
};

class D : public C
{
public:
	virtual void foo( int i )
	{
		std::cout &lt;&lt; &quot;D int\n&quot;;
		C::foo(i);
	}

	virtual void foo( bool b )
	{
		std::cout &lt;&lt; &quot;D bool\n&quot;;
		C::foo(b);
	}
};

int main()
{
	D* d = new D;
	d-&gt;foo(8);
}
</code></pre>
<blockquote>
<p>warning C4800: 'int': Variable wird auf booleschen Wert ('True' oder 'False') gesetzt</p>
</blockquote>
<p>Warum und was kann man da machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274430/int-wird-bool</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 14:10:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274430.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Sep 2010 04:15:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to int wird bool!?!!? on Sun, 26 Sep 2010 04:15:02 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class B
{
public:
	virtual void foo( int i )
	{
		std::cout &lt;&lt; &quot;B int\n&quot;;
	}
	virtual void foo( bool b )
	{
		std::cout &lt;&lt; &quot;B bool\n&quot;;
	}
};

class C : public B
{
public:
	virtual void foo( bool b )
	{
		std::cout &lt;&lt; &quot;C bool\n&quot;;
		B::foo(b);
	}
};

class D : public C
{
public:
	virtual void foo( int i )
	{
		std::cout &lt;&lt; &quot;D int\n&quot;;
		C::foo(i);
	}

	virtual void foo( bool b )
	{
		std::cout &lt;&lt; &quot;D bool\n&quot;;
		C::foo(b);
	}
};

int main()
{
	D* d = new D;
	d-&gt;foo(8);
}
</code></pre>
<blockquote>
<p>warning C4800: 'int': Variable wird auf booleschen Wert ('True' oder 'False') gesetzt</p>
</blockquote>
<p>Warum und was kann man da machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957543</guid><dc:creator><![CDATA[i2b]]></dc:creator><pubDate>Sun, 26 Sep 2010 04:15:02 GMT</pubDate></item><item><title><![CDATA[Reply to int wird bool!?!!? on Sun, 26 Sep 2010 04:26:40 GMT]]></title><description><![CDATA[<blockquote>
<p>Warum</p>
</blockquote>
<p>Weil du erst D::foo(int) aufrufst, und D::foo(int) ruft C::foo(bool) auf, weil es kein C::foo(int) gibt.</p>
<blockquote>
<p>was kann man da machen?</p>
</blockquote>
<p>Ein C::foo(int) hinzufuegen oder C::foo(bool) nicht aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957544</guid><dc:creator><![CDATA[endline]]></dc:creator><pubDate>Sun, 26 Sep 2010 04:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to int wird bool!?!!? on Sun, 26 Sep 2010 04:32:01 GMT]]></title><description><![CDATA[<p>endline schrieb:</p>
<blockquote>
<p>oder C::foo(bool) nicht aufrufen.</p>
</blockquote>
<p>Wie kann ich sagen, dass er nicht konvertieren soll und nicht C::foo(bool) aufruft?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957547</guid><dc:creator><![CDATA[i2b]]></dc:creator><pubDate>Sun, 26 Sep 2010 04:32:01 GMT</pubDate></item><item><title><![CDATA[Reply to int wird bool!?!!? on Sun, 26 Sep 2010 07:09:05 GMT]]></title><description><![CDATA[<p>i2b schrieb:</p>
<blockquote>
<p>Wie kann ich sagen, dass er nicht konvertieren soll und nicht C::foo(bool) aufruft?</p>
</blockquote>
<p>DU hast die Funktion implementiert und rufst dort explizit foo() der Basisklasse (C) auf. Wenn das nicht geschehen soll, musst du einfach die Codezeile rausnehmen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957560</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 26 Sep 2010 07:09:05 GMT</pubDate></item><item><title><![CDATA[Reply to int wird bool!?!!? on Sun, 26 Sep 2010 07:43:39 GMT]]></title><description><![CDATA[<p>Abhilfe könnte hier eine using-Deklaration sein, d.h.</p>
<pre><code class="language-cpp">class C : public B
{
    using B::foo; // &lt;- !!!

public:
    virtual void foo( bool b )
    {
        std::cout &lt;&lt; &quot;C bool\n&quot;;
        B::foo(b);
    }
};
</code></pre>
<p>Ausprobiert habe ich es selber nicht, aber so müssten alle Überladungen von foo, also auch die 'int'-Variante, in der Klasse C verfügbar gemacht werden.</p>
<p>P.S: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20104">@l</a>'abra d'or, es soll ja implizit die Variante A::foo(int) aufgerufen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957562</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 26 Sep 2010 07:43:39 GMT</pubDate></item></channel></rss>