<?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[Designfrage für versch. Frameworks]]></title><description><![CDATA[<p>Hallo!</p>
<p>Angenommen ich hab meine eigene Klasse, nennen wir sie &quot;Color&quot;. Sie kann alles, was eine Farbklasse so kann, z.B. kann man Red Green und Blue setzen.<br />
Diese Klasse will ich jetzt je nach Projekt mit unterschiedlichen Frameworks verwenden, z.B. DirectX oder OpenCv.</p>
<p>Diese haben ihre eigenen Color-Klassen. Wie spendiert man der Color-Klasse nun eine Konvertierungsmöglichkeit. Sowas wie &quot;ConvertToOpenCvColor&quot; o.ä. wäre Mist, weil man dann ja immer zumindest die entsprechenden Headerdateien des Frameworks haben müsste, auch wenn man's nicht benutzt.</p>
<p>Erbt man in diesem Fall tatsächlich (DxColor) implementiert dort eine neue Methode? Geht das über Templates?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/257394/designfrage-für-versch-frameworks</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 06:25:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257394.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Dec 2009 22:12:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Designfrage für versch. Frameworks on Sun, 27 Dec 2009 22:12:42 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Angenommen ich hab meine eigene Klasse, nennen wir sie &quot;Color&quot;. Sie kann alles, was eine Farbklasse so kann, z.B. kann man Red Green und Blue setzen.<br />
Diese Klasse will ich jetzt je nach Projekt mit unterschiedlichen Frameworks verwenden, z.B. DirectX oder OpenCv.</p>
<p>Diese haben ihre eigenen Color-Klassen. Wie spendiert man der Color-Klasse nun eine Konvertierungsmöglichkeit. Sowas wie &quot;ConvertToOpenCvColor&quot; o.ä. wäre Mist, weil man dann ja immer zumindest die entsprechenden Headerdateien des Frameworks haben müsste, auch wenn man's nicht benutzt.</p>
<p>Erbt man in diesem Fall tatsächlich (DxColor) implementiert dort eine neue Methode? Geht das über Templates?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828694</guid><dc:creator><![CDATA[Deesigner]]></dc:creator><pubDate>Sun, 27 Dec 2009 22:12:42 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage für versch. Frameworks on Sun, 27 Dec 2009 22:24:39 GMT]]></title><description><![CDATA[<p>Deesigner schrieb:</p>
<blockquote>
<p>Diese haben ihre eigenen Color-Klassen. Wie spendiert man der Color-Klasse nun eine Konvertierungsmöglichkeit. Sowas wie &quot;ConvertToOpenCvColor&quot; o.ä. wäre Mist, weil man dann ja immer zumindest die entsprechenden Headerdateien des Frameworks haben müsste, auch wenn man's nicht benutzt.</p>
</blockquote>
<p>Die Headerdateien muss man hier erst in der .cpp-Datei einbinden.</p>
<pre><code class="language-cpp">// ================== Color.hpp ==================
class OpenCV_Color;

class Color
{
    public:
        OpenCV_Color ConvertToOpenCvColor() const;
};

// ================== Color.cpp ==================
#include &quot;Color.hpp&quot;
#include &lt;OpenCV/Color.h&gt;

OpenCV_Color Color::ConvertToOpenCvColor() const
{
    // ...
}
</code></pre>
<p>Du kannst also zum Beispiel die Bibliotheken mit dem Code der .cpp-Datei ausliefern. Oder wenn du den User selbst rekompilieren lassen möchtest, kannst du mit bedingter Kompilierung unbenötigte Definitionen ausschliessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1828703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828703</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 27 Dec 2009 22:24:39 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage für versch. Frameworks on Sun, 27 Dec 2009 22:35:39 GMT]]></title><description><![CDATA[<p>Ich glaube, er meinte eher, wie man das vom Design schön löst.</p>
<p>Ich würde meine Color-Klasse ganz normal schreiben und dann einfach ableiten.</p>
<pre><code class="language-cpp">class Color
{
 // Ganz &quot;normale&quot; Klasse
};
</code></pre>
<p>Verwendung für anderes Framework:</p>
<pre><code class="language-cpp">class ColorCv : public Color
{
 // Benötige Funktionen um sie kompatibel zu machen. 
};
</code></pre>
<p>Man könnte dies auch über Komposition lösen:</p>
<pre><code class="language-cpp">class ColorCv
{
 private:
  Color mColor;

 public:
  // Convert-Zeugs
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1828705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828705</guid><dc:creator><![CDATA[asdasd]]></dc:creator><pubDate>Sun, 27 Dec 2009 22:35:39 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage für versch. Frameworks on Mon, 28 Dec 2009 16:07:25 GMT]]></title><description><![CDATA[<p>Ich weiss nicht, ob sich eine weitere Klasse als Schnittstelle zwischen der eigenen <code>Color</code> und der externen <code>ColorCv</code> lohnt.</p>
<p>Meinen Ansatz finde ich übrigens auch nicht so gut, da er die eigene <code>Color</code> -Klasse abhängig macht. Falls nicht gleich implizite Konvertierungsmöglichkeiten erwünscht sind, fände ich die eleganteste Lösung, entsprechende globale Konvertierungsfunktionen einzurichten. Diese könnte man separat einbinden und somit wäre auch bereits geklärt, was zu tun ist, wenn deren Funktionalität nicht benötigt wird.</p>
<pre><code class="language-cpp">ColorCv ToColorCV(const Color&amp;   col);
Color   ToMyColor(const ColorCv&amp; col);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1828927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1828927</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 28 Dec 2009 16:07:25 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage für versch. Frameworks on Wed, 30 Dec 2009 06:16:26 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Ich weiss nicht, ob sich eine weitere Klasse als Schnittstelle zwischen der eigenen <code>Color</code> und der externen <code>ColorCv</code> lohnt.</p>
<p>Meinen Ansatz finde ich übrigens auch nicht so gut, da er die eigene <code>Color</code> -Klasse abhängig macht. Falls nicht gleich implizite Konvertierungsmöglichkeiten erwünscht sind, fände ich die eleganteste Lösung, entsprechende globale Konvertierungsfunktionen einzurichten. Diese könnte man separat einbinden und somit wäre auch bereits geklärt, was zu tun ist, wenn deren Funktionalität nicht benötigt wird.</p>
<pre><code class="language-cpp">ColorCv ToColorCV(const Color&amp;   col);
Color   ToMyColor(const ColorCv&amp; col);
</code></pre>
</blockquote>
<p>das hatte ich so jetzt auch als beste Lösung gesehen. Entsprechende Header einbinden und fertig <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="🙂"
    /> so ein problem ist allerdings sicher auch nicht neu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1829664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1829664</guid><dc:creator><![CDATA[Deesigner]]></dc:creator><pubDate>Wed, 30 Dec 2009 06:16:26 GMT</pubDate></item></channel></rss>