<?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[Multi-Level Vererbung]]></title><description><![CDATA[<p>Hi miteinander</p>
<p>Folgende Klassenhierarchie:</p>
<pre><code class="language-cpp">class ApplicationHelper: public Object {
public:
	// ...
	virtual Ptr&lt;Application&gt; Install(const Ptr&lt;Node&gt; &amp;) const;
	Ptr&lt;Application&gt; Install(const std::string &amp;) const;
	ApplicationContainer Install(const NodeContainer &amp;) const;
	// ...
};
</code></pre>
<pre><code class="language-cpp">class TrafficGeneratorHelper: public ApplicationHelper {
	// ...
};
</code></pre>
<pre><code class="language-cpp">class VoipTrafficGeneratorHelper: public TrafficGeneratorHelper {
public:
	// ...
	virtual Ptr&lt;Application&gt; Install(const Ptr&lt;Node&gt; &amp;) const;
	// ...
};
</code></pre>
<p>Möchte ich nun Install auf einen NodeContainer ausführen mit einem VoipTrafficGeneratorHelper, etwa so:</p>
<pre><code class="language-cpp">VoipTrafficGeneratorHelper voipHelper;
NodeContainer container;
voipHelper.Install(container);
</code></pre>
<p>So erhalte ich folgende Fehlermeldung:</p>
<pre><code>../src/tragic-test.cc: In static member function `static void TragicTest::test3GroupsCsmaNetwork()':
../src/tragic-test.cc:44: error: no matching function for call to `ns3::VoipTrafficGeneratorHelper::Install(ns3::NodeContainer&amp;)'
c:/Program Files/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/tragic/traffic-generator/voip-traffic-generator-helper.h:18: note: candidates are: virtual ns3::Ptr&lt;ns3::Application&gt; ns3::VoipTrafficGeneratorHelper::Install(const ns3::Ptr&lt;ns3::Node&gt;&amp;) const
mingw32-make: *** [src/tragic-test.o] Error 1
</code></pre>
<p>Caste ich das Ding vorher zu einem ApplicationHelper, also:</p>
<pre><code class="language-cpp">VoipTrafficGeneratorHelper voipHelper;
NodeContainer container;
static_cast&lt;ApplicationHelper *&gt; (&amp;voipHelper)-&gt;Install(container);
</code></pre>
<p>Funktioniert es wiederum problemlos. Was also, frage ich mich, muss ich tun um die geerbte Methode einfach so aufrufen zu können?</p>
<pre><code class="language-cpp">TrafficGeneratorHelper helper;
NodeContainer container;
helper.Install(container);
</code></pre>
<p>Klappt übrigens ebenfalls problemlos.</p>
<p>Besten Dank schon im Voraus und freundliche Grüsse<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240368/multi-level-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 01:11:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240368.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 May 2009 21:32:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Multi-Level Vererbung on Tue, 05 May 2009 21:32:32 GMT]]></title><description><![CDATA[<p>Hi miteinander</p>
<p>Folgende Klassenhierarchie:</p>
<pre><code class="language-cpp">class ApplicationHelper: public Object {
public:
	// ...
	virtual Ptr&lt;Application&gt; Install(const Ptr&lt;Node&gt; &amp;) const;
	Ptr&lt;Application&gt; Install(const std::string &amp;) const;
	ApplicationContainer Install(const NodeContainer &amp;) const;
	// ...
};
</code></pre>
<pre><code class="language-cpp">class TrafficGeneratorHelper: public ApplicationHelper {
	// ...
};
</code></pre>
<pre><code class="language-cpp">class VoipTrafficGeneratorHelper: public TrafficGeneratorHelper {
public:
	// ...
	virtual Ptr&lt;Application&gt; Install(const Ptr&lt;Node&gt; &amp;) const;
	// ...
};
</code></pre>
<p>Möchte ich nun Install auf einen NodeContainer ausführen mit einem VoipTrafficGeneratorHelper, etwa so:</p>
<pre><code class="language-cpp">VoipTrafficGeneratorHelper voipHelper;
NodeContainer container;
voipHelper.Install(container);
</code></pre>
<p>So erhalte ich folgende Fehlermeldung:</p>
<pre><code>../src/tragic-test.cc: In static member function `static void TragicTest::test3GroupsCsmaNetwork()':
../src/tragic-test.cc:44: error: no matching function for call to `ns3::VoipTrafficGeneratorHelper::Install(ns3::NodeContainer&amp;)'
c:/Program Files/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/tragic/traffic-generator/voip-traffic-generator-helper.h:18: note: candidates are: virtual ns3::Ptr&lt;ns3::Application&gt; ns3::VoipTrafficGeneratorHelper::Install(const ns3::Ptr&lt;ns3::Node&gt;&amp;) const
mingw32-make: *** [src/tragic-test.o] Error 1
</code></pre>
<p>Caste ich das Ding vorher zu einem ApplicationHelper, also:</p>
<pre><code class="language-cpp">VoipTrafficGeneratorHelper voipHelper;
NodeContainer container;
static_cast&lt;ApplicationHelper *&gt; (&amp;voipHelper)-&gt;Install(container);
</code></pre>
<p>Funktioniert es wiederum problemlos. Was also, frage ich mich, muss ich tun um die geerbte Methode einfach so aufrufen zu können?</p>
<pre><code class="language-cpp">TrafficGeneratorHelper helper;
NodeContainer container;
helper.Install(container);
</code></pre>
<p>Klappt übrigens ebenfalls problemlos.</p>
<p>Besten Dank schon im Voraus und freundliche Grüsse<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706147</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Tue, 05 May 2009 21:32:32 GMT</pubDate></item><item><title><![CDATA[Reply to Multi-Level Vererbung on Tue, 05 May 2009 21:38:25 GMT]]></title><description><![CDATA[<p>Mit der Deklaration in der abgeleiteten Klasse verdeckst du die gleichnamigen Funktionen in Basisklassen. Mittels <code>using</code> innerhalb der Klassendefinition kannst du diese explizit wieder sichtbar machen:</p>
<pre><code class="language-cpp">using ApplicationHelper::Install;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1706150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706150</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 05 May 2009 21:38:25 GMT</pubDate></item><item><title><![CDATA[Reply to Multi-Level Vererbung on Tue, 05 May 2009 21:42:57 GMT]]></title><description><![CDATA[<p>Funktioniert perfekt <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>
<p>Danke für die rasche Antwort und gute n8 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706152</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Tue, 05 May 2009 21:42:57 GMT</pubDate></item></channel></rss>