<?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[Frage zu &amp;quot;Friend&amp;quot;]]></title><description><![CDATA[<p>Hallo Liebe Community,</p>
<p>Ich hätte eine Frage zu dem Schlüsselwort &quot;Friend&quot;, wenn man einer Funktion ermöglichen will Zugriff auf privat zu bekommen.</p>
<p>Klasse lautet wie folgt :</p>
<pre><code>class BankAccount {
private:
    float Balance;
public:
    void SetBalance(float b);
    float GetBalance();
    void Depositing(float d);
    void Withdrawing(float w);
    void Info();
    BankAccount();
    friend float totalBalance();
};
</code></pre>
<p>und den Aufruf und die Main</p>
<pre><code>float totalBalance(BankAccount &amp;s){
return s.Balance;
}

int main () {

BankAccount kunde;
BankAccount kunde2;
BankAccount kunde3;

cout &lt;&lt; totalBalance(kunde) &lt;&lt; endl;

return 0;
}
</code></pre>
<p>Als Fehlermeldung kommt, dass kein Zugriff möglich ist da &quot;Balance&quot; private ist.<br />
Ich weiß, dass das Schlüsselwort Friend nicht optimal ist aber naja, muss ich nunmal lernen.</p>
<p>Freue mich auf jede Antwort.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326856/frage-zu-quot-friend-quot</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 14:49:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326856.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Jul 2014 10:27:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu &amp;quot;Friend&amp;quot; on Thu, 10 Jul 2014 10:27:57 GMT]]></title><description><![CDATA[<p>Hallo Liebe Community,</p>
<p>Ich hätte eine Frage zu dem Schlüsselwort &quot;Friend&quot;, wenn man einer Funktion ermöglichen will Zugriff auf privat zu bekommen.</p>
<p>Klasse lautet wie folgt :</p>
<pre><code>class BankAccount {
private:
    float Balance;
public:
    void SetBalance(float b);
    float GetBalance();
    void Depositing(float d);
    void Withdrawing(float w);
    void Info();
    BankAccount();
    friend float totalBalance();
};
</code></pre>
<p>und den Aufruf und die Main</p>
<pre><code>float totalBalance(BankAccount &amp;s){
return s.Balance;
}

int main () {

BankAccount kunde;
BankAccount kunde2;
BankAccount kunde3;

cout &lt;&lt; totalBalance(kunde) &lt;&lt; endl;

return 0;
}
</code></pre>
<p>Als Fehlermeldung kommt, dass kein Zugriff möglich ist da &quot;Balance&quot; private ist.<br />
Ich weiß, dass das Schlüsselwort Friend nicht optimal ist aber naja, muss ich nunmal lernen.</p>
<p>Freue mich auf jede Antwort.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407957</guid><dc:creator><![CDATA[Serdar262]]></dc:creator><pubDate>Thu, 10 Jul 2014 10:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Friend&amp;quot; on Thu, 10 Jul 2014 10:30:05 GMT]]></title><description><![CDATA[<p>Die Signatur von totalBalance in der friend-Deklaration passt nicht zur Funktion selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407958</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 10 Jul 2014 10:30:05 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Friend&amp;quot; on Thu, 10 Jul 2014 10:30:26 GMT]]></title><description><![CDATA[<p>Vergleiche mal die Funktionssignatur bei der Deklaration (also wo dein friend steht) und der Definition. Fällt dir was auf? Tipp: Der Compiler sieht zwei verschieden Funktionen (Überladungen) von totalBalance. Eine ist definiert, die andere nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407959</guid><dc:creator><![CDATA[Jodocus]]></dc:creator><pubDate>Thu, 10 Jul 2014 10:30:26 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Friend&amp;quot; on Thu, 10 Jul 2014 10:30:43 GMT]]></title><description><![CDATA[<p>Die Parameter sind unterschiedlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407960</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Thu, 10 Jul 2014 10:30:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Friend&amp;quot; on Thu, 10 Jul 2014 10:39:08 GMT]]></title><description><![CDATA[<p>Vielen herzlichen Dank. Wie konnte ich das übersehen.</p>
<p>Eine weitere Frage.<br />
Ich habe 3 Kunden angelegt von denen jeder einen Kontostand hat (Konstruktor).</p>
<p>Ich könnte jetzt natürlich</p>
<pre><code>cout &lt;&lt; totalBalance(kunde)+totalBalance(kunde2)+totalBalance(kunde3) &lt;&lt; endl;
</code></pre>
<p>machen und er addiert mir die Kontostände von den Kunden zusammen.<br />
Gibt es da jedoch eine elegantere Lösung ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407962</guid><dc:creator><![CDATA[Serdar262]]></dc:creator><pubDate>Thu, 10 Jul 2014 10:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Friend&amp;quot; on Thu, 10 Jul 2014 10:47:45 GMT]]></title><description><![CDATA[<p>Da du die Kunden als einzelne Instanzen gespeichert hast nicht.<br />
Mit einer Datenstruktur schon:</p>
<pre><code>std::array&lt;BankAccount, 3&gt; Accounts;

std::cout &lt;&lt; std::accumulate(Accounts.begin(), Accounts.end(), 0.f, [](float V, BankAccount const&amp; Acc) { return V + totalBalance(Acc); });
</code></pre>
<p>Ausserdem sollte <code>totalBalance</code> eine Referenz auf <code>const</code> annehmen, denn du veränderst das Objekt beim Auslesen ja nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407963</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Thu, 10 Jul 2014 10:47:45 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu &amp;quot;Friend&amp;quot; on Thu, 10 Jul 2014 12:32:31 GMT]]></title><description><![CDATA[<p>Wie wäre es mit einem statischen Klassen-Attribut totalBalance und einer statischen Memberfunktion getTotalBalance</p>
<pre><code>class BankAccount {
private:
    float Balance;
    static float totalBalance;
public:
    void SetBalance(float b);  // hier muss du dann natürlich auch totalBalance anpassen
    float GetBalance();
    void Depositing(float d);
    void Withdrawing(float w);
    void Info();
    BankAccount();
    static float getTotalBalance() {return totalBalance;}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2407983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407983</guid><dc:creator><![CDATA[nowUnregistered]]></dc:creator><pubDate>Thu, 10 Jul 2014 12:32:31 GMT</pubDate></item></channel></rss>