<?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[Einzelne Methoden als friend anderer Klassen deklarieren]]></title><description><![CDATA[<p>Hi,</p>
<p>gibt es die Möglichkeit, dass ich zum Beispiel Klasse B Zugriff auf<br />
die Methode KlasseA.Methode1 gewähre und Klasse C auf KlasseA.Methode2 ?<br />
Also dass ich einzelnde Methoden als friend anderer Klassen mache.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/225961/einzelne-methoden-als-friend-anderer-klassen-deklarieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 07:57:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/225961.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Oct 2008 15:17:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einzelne Methoden als friend anderer Klassen deklarieren on Mon, 27 Oct 2008 15:17:34 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>gibt es die Möglichkeit, dass ich zum Beispiel Klasse B Zugriff auf<br />
die Methode KlasseA.Methode1 gewähre und Klasse C auf KlasseA.Methode2 ?<br />
Also dass ich einzelnde Methoden als friend anderer Klassen mache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605599</guid><dc:creator><![CDATA[sdfsdf]]></dc:creator><pubDate>Mon, 27 Oct 2008 15:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Methoden als friend anderer Klassen deklarieren on Mon, 27 Oct 2008 15:21:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A
{
public:
    void foo();
    void bar();
};

class B
{
public:
    void foo();
    void bar();
};

class C
{
    int a;
    friend void A::foo();
    friend void B::bar();
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1605600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605600</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 27 Oct 2008 15:21:45 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Methoden als friend anderer Klassen deklarieren on Mon, 27 Oct 2008 15:25:24 GMT]]></title><description><![CDATA[<p>Ich meine es etwas anders.</p>
<pre><code class="language-cpp">class A
{
private:
    void Methode1();
    void Methode2();
};

class B
{
    // Klasse B soll nur A::Methode1() aufrufen dürfen
};

class C
{
    // Klasse C soll nur A::Methode2() aufrufen dürfen
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1605605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605605</guid><dc:creator><![CDATA[sdfsdf]]></dc:creator><pubDate>Mon, 27 Oct 2008 15:25:24 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Methoden als friend anderer Klassen deklarieren on Mon, 27 Oct 2008 15:31:08 GMT]]></title><description><![CDATA[<p>Das geht so nicht. Allerdings erscheint mir das auch wenig sinnvoll. Für sowas würde ich eher Interfaces benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605607</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 27 Oct 2008 15:31:08 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Methoden als friend anderer Klassen deklarieren on Mon, 27 Oct 2008 16:25:16 GMT]]></title><description><![CDATA[<p>Berichtigt mich wenn ich Unsinn verzapfe..<br />
Das wäre überhaupt nicht gut, weil deine Klassen dann aneinander gebunden sind.<br />
Im Idealfall sollte deine Klasse aber in jeder Umgebung autonom funktionieren, eine derartige Aufruferbezogenheit reduziert die Wiederverwendbarkeit aber auf ein Minimum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605636</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Mon, 27 Oct 2008 16:25:16 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Methoden als friend anderer Klassen deklarieren on Mon, 27 Oct 2008 18:35:54 GMT]]></title><description><![CDATA[<p>JustAnotherNoob schrieb:</p>
<blockquote>
<p>Berichtigt mich wenn ich Unsinn verzapfe..</p>
</blockquote>
<p>Stimmt schon.</p>
<p>Klassen sind nicht so konzipiert, dass sie selber auswählen, von wo aus worauf zugegriffen werden kann. Es gibt zwar unterschiedliche Rechte (Zugriffsspezifizierer), aber (mit Ausnahmen der <code>friend</code> s) gelten diese für alle.</p>
<p>Wenn du genauer beschreiben würdest, wozu du diese Einschränkung benötigst, könnten wir dir vielleicht Alternativen nennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605703</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 27 Oct 2008 18:35:54 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Methoden als friend anderer Klassen deklarieren on Mon, 27 Oct 2008 18:45:09 GMT]]></title><description><![CDATA[<p>Ich hatte in der letzten Zeit desöfteren Situationen wo es nützlich wäre.<br />
Zugegebenermaßen waren es glaube ich Designfehler <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>
<p>Hier mal eine.<br />
Ein Object soll nur von einem Manager erstellt werden können.<br />
Daher, alle Constructoren sind private und dann halt eine friend Beziehung.<br />
Nun kann der Manager aber auch auf alle private Sachen zugreifen was ich eg nicht möchte.</p>
<p>ot: Ich bin begeistert wie schnell einem hier geholfen wird <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="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605707</guid><dc:creator><![CDATA[sdfsdf]]></dc:creator><pubDate>Mon, 27 Oct 2008 18:45:09 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Methoden als friend anderer Klassen deklarieren on Tue, 28 Oct 2008 08:51:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A;
class B;

class Manager
{
public:
	A* createA ();
	B* createB ();
};

class A
{
private:
	A ()
	{}
	friend A* Manager::createA();
};

class B
{
private:
	B ()
	{}
	friend B* Manager::createB();
};
</code></pre>
<p>cpp:</p>
<pre><code class="language-cpp">A* Manager::createA () { 
B b; //uups
return new A;
}

B* Manager::createB () {
A a; //uups 2
return new B; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1605924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605924</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 28 Oct 2008 08:51:48 GMT</pubDate></item></channel></rss>