<?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 auf globale Funktion]]></title><description><![CDATA[<p>Hallo, ich habe ein seltsames Problem!</p>
<p>Ich habe eine Klasse mit einer friend Deklaration auf eine globale Funktion:</p>
<pre><code class="language-cpp">// Count.h
namespace nsd {

class Count {
private:

     friend INT_PTR CALLBACK DialogProcHelper(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
     INT_PTR dialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);

};

}

// Count.cpp
namespace nsd {

static Count* g_Count = NULL;

}

INT_PTR CALLBACK DialogProcHelper(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
    return nsd::g_Count-&gt;dialogProc(hDlg, msg, wParam, lParam); // A
}
</code></pre>
<p>Das bringt mir einen Compiler Fehler in Zeile A:</p>
<blockquote>
<p>error C2248: 'nsd::Count::dialogProc' : cannot access private member declared in class 'nsd::Count'</p>
</blockquote>
<p>Wieso? Ich habe doch DialogProcHelper extra als friend deklariert? <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/288603/friend-auf-globale-funktion</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 22:00:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288603.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Jun 2011 19:33:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to friend auf globale Funktion on Sun, 19 Jun 2011 19:33:02 GMT]]></title><description><![CDATA[<p>Hallo, ich habe ein seltsames Problem!</p>
<p>Ich habe eine Klasse mit einer friend Deklaration auf eine globale Funktion:</p>
<pre><code class="language-cpp">// Count.h
namespace nsd {

class Count {
private:

     friend INT_PTR CALLBACK DialogProcHelper(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
     INT_PTR dialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);

};

}

// Count.cpp
namespace nsd {

static Count* g_Count = NULL;

}

INT_PTR CALLBACK DialogProcHelper(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
    return nsd::g_Count-&gt;dialogProc(hDlg, msg, wParam, lParam); // A
}
</code></pre>
<p>Das bringt mir einen Compiler Fehler in Zeile A:</p>
<blockquote>
<p>error C2248: 'nsd::Count::dialogProc' : cannot access private member declared in class 'nsd::Count'</p>
</blockquote>
<p>Wieso? Ich habe doch DialogProcHelper extra als friend deklariert? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2080795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080795</guid><dc:creator><![CDATA[FreundFreund]]></dc:creator><pubDate>Sun, 19 Jun 2011 19:33:02 GMT</pubDate></item><item><title><![CDATA[Reply to friend auf globale Funktion on Sun, 19 Jun 2011 19:44:29 GMT]]></title><description><![CDATA[<p>AFaik geht der Compiler davon aus, daß die friend-Funktion im selben Namensraum liegt wie die Klasse, solange du ihn nicht vom Gegenteil überzeugen kannst. Das heißt entweder du packst deine Funktion auch mit in den Namensraum oder du gibst bei der friend-Definition den kompletten Namen an (zumindest Ideone benötigt für letzteres noch eine <a href="http://ideone.com/JJEMq" rel="nofollow">Forward-Deklaration</a> der Funktion).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2080801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2080801</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 19 Jun 2011 19:44:29 GMT</pubDate></item></channel></rss>