<?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[friend in klasse]]></title><description><![CDATA[<p>hi</p>
<p>ich hab zwei klassen:</p>
<pre><code class="language-cpp">class P
{
public:
friend class M; // Erlaubt den Zugriff von &quot;M&quot; auf &quot;P&quot;, richtig?
//.. bild_von_P bestimmen durch funktionen,etc.
private:
char bild_von_P;
};

class M
{
public:
void any() { std::cout &lt;&lt; bild &lt;&lt; std::endl; }
private:
int bild = bild_von_P; // Wie soll ich das hier machen? 
};
</code></pre>
<p>Nur hab ich keine Ahnung, wie ich der <em>Klasse M</em> <strong>erlauben soll</strong>, dass sie die Variable von der <em>Klasse P</em> benutzen darf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Wäre sehr dankbar, für jegliche Unterstützung <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>Mfg<br />
P.s.: die klassennamen und sonstige Namen von Variablen zbsp. gehören eigentlich nicht so, ich hab sie nur durch andere Namen ersetzt, weil ... nicht so wichtig <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/196210/friend-in-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 09:09:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196210.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Oct 2007 18:27:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 18:27:05 GMT]]></title><description><![CDATA[<p>hi</p>
<p>ich hab zwei klassen:</p>
<pre><code class="language-cpp">class P
{
public:
friend class M; // Erlaubt den Zugriff von &quot;M&quot; auf &quot;P&quot;, richtig?
//.. bild_von_P bestimmen durch funktionen,etc.
private:
char bild_von_P;
};

class M
{
public:
void any() { std::cout &lt;&lt; bild &lt;&lt; std::endl; }
private:
int bild = bild_von_P; // Wie soll ich das hier machen? 
};
</code></pre>
<p>Nur hab ich keine Ahnung, wie ich der <em>Klasse M</em> <strong>erlauben soll</strong>, dass sie die Variable von der <em>Klasse P</em> benutzen darf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Wäre sehr dankbar, für jegliche Unterstützung <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>Mfg<br />
P.s.: die klassennamen und sonstige Namen von Variablen zbsp. gehören eigentlich nicht so, ich hab sie nur durch andere Namen ersetzt, weil ... nicht so wichtig <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1392713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392713</guid><dc:creator><![CDATA[str_m]]></dc:creator><pubDate>Fri, 26 Oct 2007 18:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 19:17:06 GMT]]></title><description><![CDATA[<p>Weder die Klasse <em>M</em> noch <em>P</em> hat irgendwelche Variablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392729</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Fri, 26 Oct 2007 19:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 20:25:45 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>Weder die Klasse <em>M</em> noch <em>P</em> hat irgendwelche Variablen.</p>
</blockquote>
<pre><code class="language-cpp">class P
{
public:
friend class M; // Erlaubt den Zugriff von &quot;M&quot; auf &quot;P&quot;, richtig?
//.. bild_von_P bestimmen durch funktionen,etc.
private:
char bild_von_P; // &lt;------------------
};

class M
{
public:
void any() { std::cout &lt;&lt; bild &lt;&lt; std::endl; }
private:
int bild = bild_von_P; // &lt;------------------
};
</code></pre>
<p>Die Pfeile markieren das was ich meine.<br />
und das was da drinnen ist, sind variablen, egal ob in einer klasse, funktionen oder sonst was ...</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392751</guid><dc:creator><![CDATA[str_m]]></dc:creator><pubDate>Fri, 26 Oct 2007 20:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 20:53:59 GMT]]></title><description><![CDATA[<p>Das Problem ist, deine Zeile 18 macht mal komplett gar keinen Sinn, deswegen kann man dir schwer irgendwelche Ratschläge geben. Erkläre doch mal was sie eigentlich bewirken soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392760</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Fri, 26 Oct 2007 20:53:59 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 20:57:04 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>Das Problem ist, deine Zeile 18 macht mal komplett gar keinen Sinn, deswegen kann man dir schwer irgendwelche Ratschläge geben. Erkläre doch mal was sie eigentlich bewirken soll?</p>
</blockquote>
<p>ich möchte, dass die Klasse M mithilfe der funktion &quot;any()&quot; den Inhalt der Variable bild_von_P von der Klasse P ausgegeben wird.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392763</guid><dc:creator><![CDATA[str_m]]></dc:creator><pubDate>Fri, 26 Oct 2007 20:57:04 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 21:07:07 GMT]]></title><description><![CDATA[<p>str_m schrieb:</p>
<blockquote>
<p>ich möchte, dass die Klasse M mithilfe der funktion &quot;any()&quot; den Inhalt der Variable bild_von_P von der Klasse P ausgegeben wird.</p>
</blockquote>
<p>Hallo, jemand zu Hause?</p>
<p>&lt;a href= schrieb:</p>
<blockquote>
<p>finix&quot;&gt;<br />
Weder die Klasse M noch P hat irgendwelche Variablen.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1392765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392765</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Fri, 26 Oct 2007 21:07:07 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 21:10:52 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>str_m schrieb:</p>
<blockquote>
<p>ich möchte, dass die Klasse M mithilfe der funktion &quot;any()&quot; den Inhalt der Variable bild_von_P von der Klasse P ausgegeben wird.</p>
</blockquote>
<p>Hallo, jemand zu Hause?</p>
<p>&lt;a href= schrieb:</p>
<blockquote>
<p>finix&quot;&gt;<br />
Weder die Klasse M noch P hat irgendwelche Variablen.</p>
</blockquote>
</blockquote>
<p>was ist das dann? ( BEI DEN PFEILEN ?!)</p>
<pre><code class="language-cpp">class P 
{ 
public: 
friend class M; // Erlaubt den Zugriff von &quot;M&quot; auf &quot;P&quot;, richtig? 
//.. bild_von_P bestimmen durch funktionen,etc. 
private: 
char bild_von_P; // &lt;-----------------
}; 

class M 
{ 
public: 
void any() { std::cout &lt;&lt; bild &lt;&lt; std::endl; } 
private: 
int bild = bild_von_P; // &lt;------------------ 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1392766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392766</guid><dc:creator><![CDATA[EDDSF]]></dc:creator><pubDate>Fri, 26 Oct 2007 21:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 21:46:45 GMT]]></title><description><![CDATA[<p><a href="https://www.google.de/search?&amp;q=Instanz" rel="nofollow">Google: Instanz</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392777</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Fri, 26 Oct 2007 21:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 22:15:53 GMT]]></title><description><![CDATA[<p>danke, aber wie kann einen Code schreiben, der aus zwei Klassen besteht, und eine Instanz der ersten Klasse in der zweiten Klasse ausgegeben wird, mithilfe von &quot;friend&quot; ?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392781</guid><dc:creator><![CDATA[EDDSF]]></dc:creator><pubDate>Fri, 26 Oct 2007 22:15:53 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 22:42:45 GMT]]></title><description><![CDATA[<p>kannst du mir bitte ein Beispiel zeigen, wie das geht?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392789</guid><dc:creator><![CDATA[str_m]]></dc:creator><pubDate>Fri, 26 Oct 2007 22:42:45 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 22:55:08 GMT]]></title><description><![CDATA[<p>str_m schrieb:</p>
<blockquote>
<p>kannst du mir bitte ein Beispiel zeigen, wie das geht?</p>
<p>mfg</p>
</blockquote>
<p>na ja, du hast wohl eine falsche Vorstellung von klassen und solltest daher etwas Grundlagen lernen -<br />
Klassen stellen vereinfacht gesagt einfache eine Art Bauplan für Objekte dieser Art dar. Also in deinem Fall sagt die Klasse P aus, dass jedes Objekt, dass man von ihr instanziert ein private-Element bild_von_P vom Typ char hat.</p>
<p>In Klasse M kannst du natürlich jetzt nicht einfach die Variable aus dem Bauplan &quot;Klasse P&quot; verändern, denn das ist eben nur der Bauplan, sondern du brauchst ein OBjekt vom Typ P, dessen Element du dann verändern kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392791</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Fri, 26 Oct 2007 22:55:08 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 22:59:31 GMT]]></title><description><![CDATA[<p>sowas meine ich:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-193493-and-highlight-is-friend.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-193493-and-highlight-is-friend.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392793</guid><dc:creator><![CDATA[str_m]]></dc:creator><pubDate>Fri, 26 Oct 2007 22:59:31 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 23:03:49 GMT]]></title><description><![CDATA[<p>Und hättest du weiter gelesen, hättest du dieses Codesnippet gefunden, woraus du ersehen kannst, dass eine Instanz von nöten ist. Wie gesagt, die Variablen einer Klasse sind - sofern nicht static - nur in deren Instanzen existent, nicht aber in der Klasse selber.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class foo; //Forawrd Deklaration, damit in bar friend class foo deklariert werden kann

class bar
{
private:
    friend class foo; //so rum muss das friend deklariert werden  
    int data;
};

class foo
{
public:
    void func() { std::cout &lt;&lt; inst.data &lt;&lt; std::endl; }

private:
    bar inst; //hier kein fehler mehr
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1392796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392796</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Fri, 26 Oct 2007 23:03:49 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 23:22:05 GMT]]></title><description><![CDATA[<p>Checker&amp;Murckser schrieb:</p>
<blockquote>
<p>Und hättest du weiter gelesen, hättest du dieses Codesnippet gefunden, woraus du ersehen kannst, dass eine Instanz von nöten ist. Wie gesagt, die Variablen einer Klasse sind - sofern nicht static - nur in deren Instanzen existent, nicht aber in der Klasse selber.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class foo; //Forawrd Deklaration, damit in bar friend class foo deklariert werden kann

class bar
{
private:
    friend class foo; //so rum muss das friend deklariert werden  
    int data;
};

class foo
{
public:
    void func() { std::cout &lt;&lt; inst.data &lt;&lt; std::endl; }

private:
    bar inst; //hier kein fehler mehr
};
</code></pre>
</blockquote>
<p>Und hättest du weitergelesen, wäre dir klar geworden, dass es einer Forwarddeklaration nicht bedarf, um einen friend zu deklarieren - die Deklaration von foo vor bar ist hier nicht notwendig (natürlich schadet sie auch nicht). Einer Forwärtsdeklaration eines Templates bedarf es dann, wenn wir eine Spezialisierung eines Templates zum friend machen wollen (weil wir uns nicht auf Spezialisierungen beziehen können, bevor das Primärtemplate deklariert wurde - das hat mit friend im Speziellen nichts zu tun) oder einer Memberfunktion einer anderen Klasse zum friend machen (in diesem Falle muss die andere Klasse bereits deklariert worden sein - auch das ist im Prinzip nichts, was speziell mit friend zu tun hat, in anderen Situationen wie der Deklaration eines Memberpointers ist es genauso). Diese Regeln sind lediglich dann strikter, wenn wir friends einer lokalen Klasse (=eine Klasse, die in einer Funktion lokal definiert wird) deklarieren - das ist aber kein besonders häufiger Fall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392801</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 26 Oct 2007 23:22:05 GMT</pubDate></item><item><title><![CDATA[Reply to friend in klasse on Fri, 26 Oct 2007 23:22:41 GMT]]></title><description><![CDATA[<p>danke liebe community!</p>
<p>ich danke euch für die hilfreichen antworten und entschuldigung wegen dem einem Zeug.</p>
<p>Gute Nacht <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392803</guid><dc:creator><![CDATA[str_m]]></dc:creator><pubDate>Fri, 26 Oct 2007 23:22:41 GMT</pubDate></item></channel></rss>