<?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[Header einer Klasse aufteilen]]></title><description><![CDATA[<p>Hallo,</p>
<p>angenommen ich habe eine Klasse deren Interface mir zu gross wird, so dass ich es in zwei Interfaces aufteilen moechte: Eines fuer den Endnutzer, eines fuer Implementationsdetails.</p>
<p>Hier als Beispiel nur mit 2 Methoden:</p>
<pre><code class="language-cpp">class C 
{
public:
    void f();    // fuer Endnutzer
private:
    void g();    // Implementationsdetail
};
</code></pre>
<p>Wie macht man so etwas am besten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262189/header-einer-klasse-aufteilen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 19:46:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262189.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 Mar 2010 12:13:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Header einer Klasse aufteilen on Tue, 02 Mar 2010 12:13:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>angenommen ich habe eine Klasse deren Interface mir zu gross wird, so dass ich es in zwei Interfaces aufteilen moechte: Eines fuer den Endnutzer, eines fuer Implementationsdetails.</p>
<p>Hier als Beispiel nur mit 2 Methoden:</p>
<pre><code class="language-cpp">class C 
{
public:
    void f();    // fuer Endnutzer
private:
    void g();    // Implementationsdetail
};
</code></pre>
<p>Wie macht man so etwas am besten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863251</guid><dc:creator><![CDATA[ingobulla]]></dc:creator><pubDate>Tue, 02 Mar 2010 12:13:47 GMT</pubDate></item><item><title><![CDATA[Reply to Header einer Klasse aufteilen on Tue, 02 Mar 2010 12:20:15 GMT]]></title><description><![CDATA[<p>Pimpl:</p>
<pre><code class="language-cpp">class C
{
public:
    void f();    // fuer Endnutzer
private:
    struct Impl;
    Impl* pimpl;
};

// in der .cpp:
struct C::Impl {
    void g();
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1863255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863255</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Tue, 02 Mar 2010 12:20:15 GMT</pubDate></item><item><title><![CDATA[Reply to Header einer Klasse aufteilen on Tue, 02 Mar 2010 12:26:50 GMT]]></title><description><![CDATA[<p>Nebenbei solltest du dir noch überlegen ob es wirklich ein sinnvolles Design ist wenn die Klasse so riesig ist. Eventuell lassen sich Teile der Funktionalität in andere Klassen auslagern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863258</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 02 Mar 2010 12:26:50 GMT</pubDate></item><item><title><![CDATA[Reply to Header einer Klasse aufteilen on Tue, 02 Mar 2010 12:29:38 GMT]]></title><description><![CDATA[<p>ingobulla schrieb:</p>
<blockquote>
<p>angenommen ich habe eine Klasse deren Interface</p>
</blockquote>
<p>Mit &quot;Interface&quot; meinst Du wohl die Definition Klasse.</p>
<p>ingobulla schrieb:</p>
<blockquote>
<p>mir zu gross wird, so dass ich es in zwei Interfaces aufteilen moechte: Eines fuer den Endnutzer, eines fuer Implementationsdetails.<br />
[...]<br />
Wie macht man so etwas am besten?</p>
</blockquote>
<p>Gar nicht. Selbst wenn Du die Definition einer Klasse auf zwei Header-Dateien verteilst, zB</p>
<pre><code class="language-cpp">class big_ugly_monster_class
{
private:
   #include &quot;big_monsters_private_parts.inc&quot;
public:
   ...
};
</code></pre>
<p>wird das nicht wirklich übersichtlicher. Code, welcher die Klasse benutzen will, muss immer noch die komplette Klassendefinition gesehen haben. Da musst Du wohl in den sauren Apfel beißen und ein neues Design anfangen. Achte dabei auf <a href="http://en.wikipedia.org/wiki/Separation_of_concerns" rel="nofollow">SoC</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863260</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 02 Mar 2010 12:29:38 GMT</pubDate></item></channel></rss>