<?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[Wrapper: Methode passt nicht in Basisklasse]]></title><description><![CDATA[<p>Abend!</p>
<p>In meinem Projekt habe ich einen kleinen Wrapper um Linux und Windows Resourcen:</p>
<pre><code class="language-cpp">class ResourceManager {

   // Viele Methoden, die unter Win und Linux gehen
   virtual SigSlot* createSigSlot() = 0;

   virtual HardwareBuffer createBuffer(params...); = 0 // Problem
};
</code></pre>
<p>Meine konkreten Klasse implementieren nun diese Klasse, also z.B. LinuxResourceManager : public ResourceManager</p>
<p>Das Problem ist die letzte Methode. Unter Linux klappt alles wunderbar, aber unter Windows kann es sein, dass ich den HardwareBuffer verliere und neu erzeugen muss. Wenn er neu erzeugt wurde, muss ich die Benutzer des HardwareBuffers benachrichtigen (so dass sie ihn neu füllen können). Drum müsste die Windows Version so aussehen:</p>
<pre><code class="language-cpp">virtual HardwareBuffer WinResourceManager::createBuffer(params..., ResourceHolder* rh); = 0
</code></pre>
<p>Wie gesagt, unter Linux brauche ich aber den letzten Parameter ResourceHolder nicht. Die Methoden sehen also unterschiedlich aus und können eigentlich nicht in die Basisklasse ResourceManager. Da brauch ich sie aber, da beide Plattformen HardwareBuffer erzeugen können!</p>
<p>Jemand eine Idee, wie man das lösen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288999/wrapper-methode-passt-nicht-in-basisklasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 13:23:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288999.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Jun 2011 20:16:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wrapper: Methode passt nicht in Basisklasse on Sun, 26 Jun 2011 20:16:07 GMT]]></title><description><![CDATA[<p>Abend!</p>
<p>In meinem Projekt habe ich einen kleinen Wrapper um Linux und Windows Resourcen:</p>
<pre><code class="language-cpp">class ResourceManager {

   // Viele Methoden, die unter Win und Linux gehen
   virtual SigSlot* createSigSlot() = 0;

   virtual HardwareBuffer createBuffer(params...); = 0 // Problem
};
</code></pre>
<p>Meine konkreten Klasse implementieren nun diese Klasse, also z.B. LinuxResourceManager : public ResourceManager</p>
<p>Das Problem ist die letzte Methode. Unter Linux klappt alles wunderbar, aber unter Windows kann es sein, dass ich den HardwareBuffer verliere und neu erzeugen muss. Wenn er neu erzeugt wurde, muss ich die Benutzer des HardwareBuffers benachrichtigen (so dass sie ihn neu füllen können). Drum müsste die Windows Version so aussehen:</p>
<pre><code class="language-cpp">virtual HardwareBuffer WinResourceManager::createBuffer(params..., ResourceHolder* rh); = 0
</code></pre>
<p>Wie gesagt, unter Linux brauche ich aber den letzten Parameter ResourceHolder nicht. Die Methoden sehen also unterschiedlich aus und können eigentlich nicht in die Basisklasse ResourceManager. Da brauch ich sie aber, da beide Plattformen HardwareBuffer erzeugen können!</p>
<p>Jemand eine Idee, wie man das lösen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084483</guid><dc:creator><![CDATA[Suufii]]></dc:creator><pubDate>Sun, 26 Jun 2011 20:16:07 GMT</pubDate></item><item><title><![CDATA[Reply to Wrapper: Methode passt nicht in Basisklasse on Sun, 26 Jun 2011 20:23:43 GMT]]></title><description><![CDATA[<p>Was spricht dagegen, den Parameter trotzdem zu übergeben, aber in der Linux-Version nicht zu verwenden? Und wem gehört letztendlich der Puffer, den du dort zurückgeben willst?</p>
<p>PS: Ich hoffe, die Position des Semikolon ist nur ein Tipfehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084485</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 26 Jun 2011 20:23:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wrapper: Methode passt nicht in Basisklasse on Sun, 26 Jun 2011 20:27:02 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Was spricht dagegen, den Parameter trotzdem zu übergeben, aber in der Linux-Version nicht zu verwenden? Und wem gehört letztendlich der Puffer, den du dort zurückgeben willst?</p>
</blockquote>
<p>Eigentlich nichts. <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>
<p>Wenn mir nix besseres einfällt, werd ich es auch so machen. Ich dachte nur, es hat vielleicht jemand eine bessere Idee:)</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Ich hoffe, die Position des Semikolon ist nur ein Tipfehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Hehe, ja. Der ganze Code ist Pseudocode und aus dem Gedächtnis abgetippt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084489</guid><dc:creator><![CDATA[Suufii]]></dc:creator><pubDate>Sun, 26 Jun 2011 20:27:02 GMT</pubDate></item></channel></rss>