<?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[Explizit casten]]></title><description><![CDATA[<p>Hallo,</p>
<p>mal ne blöde Frage:<br />
Warum muss ich hier explizit (nach A) casten?</p>
<pre><code class="language-cpp">class A {
  public void method(int i);

}

class B : public A {
  public void method(int i, int i2);

}
</code></pre>
<pre><code class="language-cpp">B* b = new B();
b-&gt;method(1); // So macht er nen Compiler-Fehler
</code></pre>
<p>ChefCaster</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136782/explizit-casten</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 18:39:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136782.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Feb 2006 09:02:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Explizit casten on Mon, 13 Feb 2006 09:02:03 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>mal ne blöde Frage:<br />
Warum muss ich hier explizit (nach A) casten?</p>
<pre><code class="language-cpp">class A {
  public void method(int i);

}

class B : public A {
  public void method(int i, int i2);

}
</code></pre>
<pre><code class="language-cpp">B* b = new B();
b-&gt;method(1); // So macht er nen Compiler-Fehler
</code></pre>
<p>ChefCaster</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992843</guid><dc:creator><![CDATA[ChefCaster]]></dc:creator><pubDate>Mon, 13 Feb 2006 09:02:03 GMT</pubDate></item><item><title><![CDATA[Reply to Explizit casten on Mon, 13 Feb 2006 09:04:46 GMT]]></title><description><![CDATA[<p>Weil Überladung nicht automatisch über Vererbungsbeziehungen hinweg passiert. Wenn du das willst, kannst du eine using-Deklaration benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992845</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 13 Feb 2006 09:04:46 GMT</pubDate></item><item><title><![CDATA[Reply to Explizit casten on Mon, 13 Feb 2006 13:29:00 GMT]]></title><description><![CDATA[<p>hier kannst du nicht nach A casten</p>
<pre><code>class A {
  public:
   void method(int i);
};

class B : public A {
  void method(int i, int i2);
};

void main()
{
  A* a = new B;
  dynamic_cast&lt;B&gt;(a)-&gt;method(1,2);
  a-&gt;method(1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/993064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993064</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Mon, 13 Feb 2006 13:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to Explizit casten on Mon, 13 Feb 2006 13:44:18 GMT]]></title><description><![CDATA[<p>Wenn du in einer abgeleiteten Klasse eine gleichnamige Methode einführst, dann verdeckt diese alle gleichnamigen Methoden aus den Basisklassen.<br />
Möchtest du, dass der Compiler diese ebenfalls in Betracht zieht, musst du wie oben erwähnt eine using-deklaration verwenden.</p>
<pre><code class="language-cpp">class A {
  public: void method(int i);

}

class B : public A {
  public: void method(int i, int i2);
  using A::method;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/993076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993076</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Mon, 13 Feb 2006 13:44:18 GMT</pubDate></item><item><title><![CDATA[Reply to Explizit casten on Thu, 16 Feb 2006 14:58:29 GMT]]></title><description><![CDATA[<p>sorry, ich hatte da Blödsinn erzählt:<br />
Korrect:</p>
<pre><code class="language-cpp">class A {
  public:
   virtual void method(int i);
};

class B : public A {
  virtual void method(int i, int i2);
};

void main()
{
  A* a = new B;
  a-&gt;method(1,2);
  a-&gt;method(1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/995860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/995860</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Thu, 16 Feb 2006 14:58:29 GMT</pubDate></item><item><title><![CDATA[Reply to Explizit casten on Thu, 16 Feb 2006 15:35:48 GMT]]></title><description><![CDATA[<p>Das ist aber auch Bloedsinn. A hat keine Methode mit zwei Parametern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/995918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/995918</guid><dc:creator><![CDATA[Apollon]]></dc:creator><pubDate>Thu, 16 Feb 2006 15:35:48 GMT</pubDate></item><item><title><![CDATA[Reply to Explizit casten on Thu, 16 Feb 2006 16:13:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A
{
   virtual void bar();
   virtual void foo();
};
class B : public A
{
   virtual void bar();
   virtual void foo();
};
void foo()
{
   A* a = new B;
   static_cast&lt; B* &gt;( a )-&gt;foo(); // avoid
   a-&gt;bar(); // prefer
   a-&gt;foo();
}
</code></pre>
<p>test.cpp:57: error: `foo' undeclared (first use this function)<br />
verstehe ich nicht</p>
<p>[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/995964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/995964</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Thu, 16 Feb 2006 16:13:22 GMT</pubDate></item></channel></rss>