<?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[Korrekter Zugriff auf Membervariablen einer anderen Klasse?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine SDI Anwendung gemacht (Doc/View), in der ich per Menüklick ein Dialogfeld öffne.<br />
Für das Dialogfeld habe ich die Klasse CDialog erstellt. In CDialog::OnOK() will ich 2 eingegebene Werte addieren und in eine Variable schreiben, welche sich aber in der Klasse CDialogtestDoc befindet.</p>
<p>Wie macht man sowas richtig? Mir ist die Idee gekommen, CDialog als Friend von CDialogtestDoc zu deklarieren, aber das hat irgendwie nicht so geklappt.</p>
<p>Wie macht man so nen Zugriff &quot;sauber&quot;?</p>
<p>Vielen Dank schonmal <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/165759/korrekter-zugriff-auf-membervariablen-einer-anderen-klasse</link><generator>RSS for Node</generator><lastBuildDate>Fri, 19 Jun 2026 00:49:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165759.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Nov 2006 19:05:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Wed, 22 Nov 2006 19:05:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine SDI Anwendung gemacht (Doc/View), in der ich per Menüklick ein Dialogfeld öffne.<br />
Für das Dialogfeld habe ich die Klasse CDialog erstellt. In CDialog::OnOK() will ich 2 eingegebene Werte addieren und in eine Variable schreiben, welche sich aber in der Klasse CDialogtestDoc befindet.</p>
<p>Wie macht man sowas richtig? Mir ist die Idee gekommen, CDialog als Friend von CDialogtestDoc zu deklarieren, aber das hat irgendwie nicht so geklappt.</p>
<p>Wie macht man so nen Zugriff &quot;sauber&quot;?</p>
<p>Vielen Dank schonmal <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1179550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179550</guid><dc:creator><![CDATA[saibot83]]></dc:creator><pubDate>Wed, 22 Nov 2006 19:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Wed, 22 Nov 2006 19:20:57 GMT]]></title><description><![CDATA[<p>Also, du kannst dir einfach einen Zeiger auf dein Doc holen und dem den Wert geben. Dazu muss es nichtmal eine fried-Klasse sein.<br />
Lies mal: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-125623.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-125623.html</a> <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="🙂"
    /></p>
<p>Wenn du den Dialog vom Doc aus öffnest, kannst du das Ergebnis in einer Membervariable des Dialoges speichern und das Doc dann abfragen lassen.<br />
So etwa:</p>
<pre><code class="language-cpp">CDeinDialog dlg;
dlg.DoModal();
m_zahl = dlg.m_dieSumme;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1179558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179558</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 22 Nov 2006 19:20:57 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Wed, 22 Nov 2006 21:36:46 GMT]]></title><description><![CDATA[<p>estartu schrieb:</p>
<blockquote>
<p>Also, du kannst dir einfach einen Zeiger auf dein Doc holen und dem den Wert geben.</p>
</blockquote>
<p>Hmm, so einfach hat das irgendwie nicht geklappt <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="😉"
    /><br />
Ich hab jetzt mal ohne das Zeug zu verstehen das da in meine OnOK() kopiert:</p>
<pre><code class="language-cpp">CDialogtestDoc* pDoc = (CDialogtestDoc*)(((CMainFrame*)AfxGetMainWnd())-&gt;GetActiveDocument());
	ASSERT(pDoc);
</code></pre>
<p>das ist dann wohl der einfache Pointer <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="😉"
    /><br />
Damit geht dann pDoc-&gt;m_Var1=m_E1+m_E2 problemlos.</p>
<p>estartu schrieb:</p>
<blockquote>
<pre><code class="language-cpp">CDeinDialog dlg;
dlg.DoModal();
m_zahl = dlg.m_dieSumme;
</code></pre>
</blockquote>
<p>Das funktioniert auch, aber dann krieg ich immer die Werte, auch wenn der Dialog mit Abbrechen beendet wird. Werte sollen aber nur bei klick auf Ok übernommen werden. Von daher passts mit der Lösung oben. Nur selber auf sowas zu kommen ist ein Ding der Unmöglichkeit <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/1179612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179612</guid><dc:creator><![CDATA[saibot83]]></dc:creator><pubDate>Wed, 22 Nov 2006 21:36:46 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Wed, 22 Nov 2006 21:51:16 GMT]]></title><description><![CDATA[<p>Du musst das IDOK deines Dialoges abfangen.</p>
<pre><code>INT_PTR  DlgResult;

	CMeinDialog dlgMeinDialog;
	DlgResult = dlgMeinDialog.DoModal();

	if (DlgResult == IDOK)
	{
	    // Dein Code für die Werte
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1179619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179619</guid><dc:creator><![CDATA[Turmfalke64]]></dc:creator><pubDate>Wed, 22 Nov 2006 21:51:16 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Wed, 22 Nov 2006 21:54:39 GMT]]></title><description><![CDATA[<p>Stimmt, danke! Das wäre wohl die einfachere Möglichkeit <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1179624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179624</guid><dc:creator><![CDATA[saibot83]]></dc:creator><pubDate>Wed, 22 Nov 2006 21:54:39 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Thu, 23 Nov 2006 06:28:59 GMT]]></title><description><![CDATA[<p>saibot83 schrieb:</p>
<blockquote>
<p>Nur selber auf sowas zu kommen ist ein Ding der Unmöglichkeit <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>
</blockquote>
<p>Deswegen hab ich das ja mal aufgeschrieben. <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="🙂"
    /></p>
<p>Das</p>
<pre><code class="language-cpp">ASSERT(pDoc);
</code></pre>
<p>in deinem Code hat übrigens keine Funktion, weil du nie einen NULL-Zeiger bekommen wirst.<br />
Du arbeitest mit C-Casts (die einfachen Klammern) und da kommt immer irgendwas raus... und wenns der größte Murks ist.<br />
Das ASSERT ist nur nützlich im Zusammenhand mit dynamic_cast. In deinem Code schadet es zwar nicht, aber es hilft auch nicht. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1179672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179672</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 23 Nov 2006 06:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Thu, 23 Nov 2006 08:43:39 GMT]]></title><description><![CDATA[<p>Ok danke, dann kann ich das noch raus machen <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="🙂"
    /> Ich hatte zuerst den dynamic_cast drin, aber dann kam ne dämliche Warnung, dann hab ichs mit dem normalen Cast gemacht, da kommt keine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179732</guid><dc:creator><![CDATA[saibot83]]></dc:creator><pubDate>Thu, 23 Nov 2006 08:43:39 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Thu, 23 Nov 2006 08:46:19 GMT]]></title><description><![CDATA[<p>saibot83 schrieb:</p>
<blockquote>
<p>aber dann kam ne dämliche Warnung</p>
</blockquote>
<p>Welche? War eventuell die RTTI deaktiviert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179735</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 23 Nov 2006 08:46:19 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Thu, 23 Nov 2006 08:53:58 GMT]]></title><description><![CDATA[<p>&quot;warning C4541: 'dynamic_cast' fuer polymorphen Typ 'class CDocument' mit /GR- verwendet; unvorhersehbares Verhalten moeglich&quot;</p>
<p>PS: bin noch in Visual Studio 6.0 leider <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1179739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179739</guid><dc:creator><![CDATA[saibot83]]></dc:creator><pubDate>Thu, 23 Nov 2006 08:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Thu, 23 Nov 2006 08:55:26 GMT]]></title><description><![CDATA[<p>Die Warnung ist nicht dämlich, die heißt nur, dass CStoll Recht hat. <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="😉"
    /><br />
Schalte mal RTTI in den Projekteigenschaften ein und dann kannst du auch so arbeiten, wie in dem Artikel.</p>
<p>Wenn der Cast klappt, hast du einen Zeiger.<br />
Wenn er nicht klappt, hast du NULL.<br />
<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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179743</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 23 Nov 2006 08:55:26 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Zugriff auf Membervariablen einer anderen Klasse? on Thu, 23 Nov 2006 09:14:52 GMT]]></title><description><![CDATA[<p>Super, jetzt tut's <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="🙂"
    /></p>
<p>Vielen Dank euch allen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179756</guid><dc:creator><![CDATA[saibot83]]></dc:creator><pubDate>Thu, 23 Nov 2006 09:14:52 GMT</pubDate></item></channel></rss>