<?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[Getrennte Sichtbarkeitsbereiche für Klassen?]]></title><description><![CDATA[<p>Hallo Alle zusammen, gibt es Möglichkeiten Methoden nur für (eine) andere Klasse(n) sichtbar zu machen?<br />
Ich habe eine Klasse Object, welche Methoden, zum setzten von Koordinaten, für eine andere Klasse namens net::Manager zur verfügung stellt. Es passt doch aber nicht so recht ins Information-Hiding-Prinzip, dass diese Methoden allen sichtbar sind...<br />
Eine Friend-Deklaration würde ja den gesamten Private-Bereich offenlegen, also auch nicht das wahre. Kennt jemand ein hilfreiches Sprachmittel? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Modular (mit Namespaces, die Daten und Prozedere zusammenbringen...) würde ich einfach mehere Interface-Dateien mitliefern und den Rest in der Implementierung verstecken, aber das klappt mit Klassen ja leider nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/123843/getrennte-sichtbarkeitsbereiche-für-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 17:36:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/123843.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Oct 2005 17:53:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Getrennte Sichtbarkeitsbereiche für Klassen? on Thu, 20 Oct 2005 17:53:32 GMT]]></title><description><![CDATA[<p>Hallo Alle zusammen, gibt es Möglichkeiten Methoden nur für (eine) andere Klasse(n) sichtbar zu machen?<br />
Ich habe eine Klasse Object, welche Methoden, zum setzten von Koordinaten, für eine andere Klasse namens net::Manager zur verfügung stellt. Es passt doch aber nicht so recht ins Information-Hiding-Prinzip, dass diese Methoden allen sichtbar sind...<br />
Eine Friend-Deklaration würde ja den gesamten Private-Bereich offenlegen, also auch nicht das wahre. Kennt jemand ein hilfreiches Sprachmittel? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Modular (mit Namespaces, die Daten und Prozedere zusammenbringen...) würde ich einfach mehere Interface-Dateien mitliefern und den Rest in der Implementierung verstecken, aber das klappt mit Klassen ja leider nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/897076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897076</guid><dc:creator><![CDATA[roan312]]></dc:creator><pubDate>Thu, 20 Oct 2005 17:53:32 GMT</pubDate></item><item><title><![CDATA[Reply to Getrennte Sichtbarkeitsbereiche für Klassen? on Thu, 20 Oct 2005 17:56:09 GMT]]></title><description><![CDATA[<p>Friends.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897081</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Thu, 20 Oct 2005 17:56:09 GMT</pubDate></item><item><title><![CDATA[Reply to Getrennte Sichtbarkeitsbereiche für Klassen? on Thu, 20 Oct 2005 17:57:34 GMT]]></title><description><![CDATA[<p>FireFlow schrieb:</p>
<blockquote>
<p>Friends.</p>
<p>Gruß</p>
</blockquote>
<p>Link?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897084</guid><dc:creator><![CDATA[roan312]]></dc:creator><pubDate>Thu, 20 Oct 2005 17:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to Getrennte Sichtbarkeitsbereiche für Klassen? on Thu, 20 Oct 2005 18:01:07 GMT]]></title><description><![CDATA[<p><a href="https://www.google.de/search?&amp;q=tutorial%20friends%20c%2B%2B" rel="nofollow">Google: tutorial friends c++</a></p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897086</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Thu, 20 Oct 2005 18:01:07 GMT</pubDate></item><item><title><![CDATA[Reply to Getrennte Sichtbarkeitsbereiche für Klassen? on Thu, 20 Oct 2005 18:01:47 GMT]]></title><description><![CDATA[<p>FireFlow schrieb:</p>
<blockquote>
<p>Friends.</p>
<p>Gruß</p>
</blockquote>
<p>Quelle: <a href="http://CPPReference.com" rel="nofollow">CPPReference.com</a></p>
<pre><code>friend

The friend keyword allows classes or functions not normally associated with a given class to have access to the private data of that class.
</code></pre>
<p>Ich brauche den Zugriff für eine Klasse auf <strong>brstimmte</strong> Methoden, <strong>nicht auf den ganzen Private-Bereich</strong>.<br />
Oder gibt es perhaps eine spezielle Verwendung des Schlüsselwortes?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897088</guid><dc:creator><![CDATA[roan312]]></dc:creator><pubDate>Thu, 20 Oct 2005 18:01:47 GMT</pubDate></item><item><title><![CDATA[Reply to Getrennte Sichtbarkeitsbereiche für Klassen? on Thu, 20 Oct 2005 18:39:58 GMT]]></title><description><![CDATA[<p>Falls es kein derartiges Sprachmittel geben sollte: hat jemand eine Idee für eine Implementierung?<br />
Oder deutet etwas auf Design-Fehler hin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897124</guid><dc:creator><![CDATA[roan312]]></dc:creator><pubDate>Thu, 20 Oct 2005 18:39:58 GMT</pubDate></item><item><title><![CDATA[Reply to Getrennte Sichtbarkeitsbereiche für Klassen? on Thu, 20 Oct 2005 18:49:45 GMT]]></title><description><![CDATA[<p>roan312 schrieb:</p>
<blockquote>
<p>Oder deutet etwas auf Design-Fehler hin?</p>
</blockquote>
<p>Ja, denn meistens sind schon Friends Anzeichen für Design-Fehler (nicht immer). Zeigt doch einfach mal kurz was du vor hast.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897134</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Thu, 20 Oct 2005 18:49:45 GMT</pubDate></item><item><title><![CDATA[Reply to Getrennte Sichtbarkeitsbereiche für Klassen? on Thu, 20 Oct 2005 20:19:00 GMT]]></title><description><![CDATA[<p>Getreu dem Motto: Der Weg ist das Ziel habe ich mich daran gemacht ein Spiel zu entwerfen. Das Spielprinzip an sich ist nur soweit wie für das Technische-Design nötig geplan. Wie gesagt geht es mir eher um das sammeln von Erfahrungen beim OO-Design.<br />
Hier die vom Problem betroffenden Teileideen:</p>
<p>-Objekte erben von Interfaces, d.h. Alles was übers Netzwerk kommuniziert erbt von einem Net-Interface, Alles was Tastaturevents entgegennehmen kann erbt ...</p>
<p>-Alles ist in Namensbereiche, die sich nach den Interface-Funktionalitäten richten, unterteilt und jeder dieser Namensbereiche hat einen Manager. Dieser führt Listen, die sich ebenfalls nach den Funktionalitäten der Interfaces richten. (vector&lt;NetInterface*&gt; NetList;)<br />
Die Listen werden zu Internen zwecken der jew. Manager (der Netzwerk-M. verbreitet z.B. Koordinationsdaten an die Listen-Objekte) und Anfragen von anderen Managern (z.B. sucht der GUI-Manager ein Objekt, dass auf einen Maus-Klick vom Spieler reagiert) verwendet.</p>
<p>Jetzt kommen mir aber Zweifel an dieser Verwendung der Interfaces. Alle Klassen, ob Manager oder Objekt, haben dummerweise Zugriff auf sämtliche Interface-Methoden der Objekte.<br />
Also kann der Laufzeit-Manager munter Koordinaten und Animationen über das NeT-Interface setzen und so weiter...</p>
<p>Mir fällt partout keine Möglichkeit ein das Eleganter zu lösen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>OK, das problem hat sich von selbst erledigt... Ich poste dies hier trotzdem, da ich einerseits ~20 Minuten daran geschrieben habe und andererseits die Lösung nennen möchte.</p>
<p>Jeder Manager führt ja Listen von (passendem) Interface*, damit weiß er auch nur von den vom Interface implementierten Methoden. <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="😃"
    /><br />
Ohoh. Das kommt davon, wenn man zu viel Nachdenkt ohne zu Tippen...</p>
<p>Vieleicht bemerkt ja noch jemand einige Gravierende Designschnitzer?<br />
Ich wäre über jeden Hinweis dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897196</guid><dc:creator><![CDATA[roan312]]></dc:creator><pubDate>Thu, 20 Oct 2005 20:19:00 GMT</pubDate></item></channel></rss>