<?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[Zugriff auf globale list eines anderen Dialoges]]></title><description><![CDATA[<p>Hallo @all,</p>
<p>ich habe das folgende Konstrukt:</p>
<p>Ich greife in einem übergeordneten Dialog auf eine untergeordnete Klasse zu:</p>
<pre><code class="language-cpp">CChildDialog m_ChildDlg;
</code></pre>
<p>... // Create etc.</p>
<p>Auf die global definierten Variablen etc. der Unterklasse kann ich zugreifen mit:</p>
<pre><code class="language-cpp">m_ChildDlg.Variable
</code></pre>
<p>Nun aber mein Problem, wie kann ich auf eine List im ChildDialog von außen zugreifen:</p>
<p>Normal im ChildDialog, funktioniert:</p>
<pre><code class="language-cpp">for ( list&lt;StructName&gt;::iterator i = m_List.begin(); i != m_List.end(); i++ )
</code></pre>
<p>Von außen, funktioniert so <strong>NICHT</strong>:</p>
<pre><code class="language-cpp">for ( list&lt;m_ChildDlg.StructName&gt;::iterator i = m_ChildDlg.m_List.begin(); i != m_ChildDlg.m_List.end(); i++ )
</code></pre>
<p><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/186107/zugriff-auf-globale-list-eines-anderen-dialoges</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 15:28:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186107.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Jul 2007 08:24:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriff auf globale list eines anderen Dialoges on Thu, 05 Jul 2007 08:24:41 GMT]]></title><description><![CDATA[<p>Hallo @all,</p>
<p>ich habe das folgende Konstrukt:</p>
<p>Ich greife in einem übergeordneten Dialog auf eine untergeordnete Klasse zu:</p>
<pre><code class="language-cpp">CChildDialog m_ChildDlg;
</code></pre>
<p>... // Create etc.</p>
<p>Auf die global definierten Variablen etc. der Unterklasse kann ich zugreifen mit:</p>
<pre><code class="language-cpp">m_ChildDlg.Variable
</code></pre>
<p>Nun aber mein Problem, wie kann ich auf eine List im ChildDialog von außen zugreifen:</p>
<p>Normal im ChildDialog, funktioniert:</p>
<pre><code class="language-cpp">for ( list&lt;StructName&gt;::iterator i = m_List.begin(); i != m_List.end(); i++ )
</code></pre>
<p>Von außen, funktioniert so <strong>NICHT</strong>:</p>
<pre><code class="language-cpp">for ( list&lt;m_ChildDlg.StructName&gt;::iterator i = m_ChildDlg.m_List.begin(); i != m_ChildDlg.m_List.end(); i++ )
</code></pre>
<p><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/1318688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318688</guid><dc:creator><![CDATA[Dressman1981]]></dc:creator><pubDate>Thu, 05 Jul 2007 08:24:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf globale list eines anderen Dialoges on Thu, 05 Jul 2007 09:25:08 GMT]]></title><description><![CDATA[<p>Zeig mal etwas mehr (und vor allem zusammenhängenden) Code. (nein, damit meinte ich nicht, daß du das komplette Projekt hier reinkopieren sollst)</p>
<p>Und es wäre auch hilfreich, wenn du dazusagst, was der Compiler an dem Aufruf zu bemängeln hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318749</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 05 Jul 2007 09:25:08 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf globale list eines anderen Dialoges on Thu, 05 Jul 2007 09:43:35 GMT]]></title><description><![CDATA[<p>Hi, hier die gewünschten Infos:</p>
<pre><code class="language-cpp">// CChildDialog dialog
class CChildDialog : public CDialog
{
public:
// standard constructor etc.

struct StructName {
  CString Name_eins;
  CString Name_zwo;
};

    // Liste
    list&lt;StructName&gt; m_List;

protected:
	virtual BOOL OnInitDialog();	// etc.	
};

// Main-Dialog:

// CMainDialog dialog
class CMainDialog : public CDialog
{
public:
  // standard constructor etc.

protected:
	virtual BOOL OnInitDialog();					
   CChildDialog m_ChildDlg;				
};

// Nun im Hauptdialog in einer Funktion:

for ( list&lt;m_ChildDlg.StructName&gt;::iterator i = m_ChildDlg.m_List.begin(); i != m_ChildDlg.m_List.end(); )
  AfxMessageBox(&quot;Test&quot;);
</code></pre>
<p>Fehlermeldung:</p>
<p>.\ObjekteDialog.cpp(1299) : error C2274: 'function-style cast' : illegal as right side of '.' operator<br />
.\ObjekteDialog.cpp(1299) : error C2955: 'std::list' : use of class template requires template argument list<br />
C:\Programme\Microsoft Visual Studio 8\VC\include\list(1238) : see declaration of 'std::list'<br />
.\ObjekteDialog.cpp(1299) : error C2514: 'std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;true&gt;' : class has no constructors<br />
.\ObjekteDialog.cpp(1299) : error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;true&gt;' (or there is no acceptable conversion)<br />
C:\Programme\Microsoft Visual Studio 8\VC\include\list(293): or 'bool std::list&lt;_Ty,_Ax&gt;::_Const_iterator&lt;_Secure_validation&gt;::operator !=(const std::list&lt;_Ty,_Ax&gt;::_Const_iterator&lt;_Secure_validation&gt; &amp;) const'<br />
while trying to match the argument list '(std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;true&gt;, std::list&lt;_Ty&gt;::_Iterator&lt;_Secure_validation&gt;)'<br />
with<br />
[<br />
_Ty=CObjektInfoDialog::StructName,<br />
_Secure_validation=true<br />
]<br />
.\ObjekteDialog.cpp(1299) : error C2678: binary '++' : no operator found which takes a left-hand operand of type 'std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;true&gt;' (or there is no acceptable conversion)<br />
C:\Programme\Microsoft Visual Studio 8\VC\include\list(402): could be 'std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;_Secure_validation&gt; std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;_Secure_validation&gt;::operator ++(int)'<br />
C:\Programme\Microsoft Visual Studio 8\VC\include\list(396): or 'std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;_Secure_validation&gt; &amp;std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;_Secure_validation&gt;::operator ++(void)'<br />
while trying to match the argument list '(std::list&lt;_Ty,_Ax&gt;::_Iterator&lt;true&gt;, int)'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318769</guid><dc:creator><![CDATA[Dressman1981]]></dc:creator><pubDate>Thu, 05 Jul 2007 09:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf globale list eines anderen Dialoges on Thu, 05 Jul 2007 10:25:23 GMT]]></title><description><![CDATA[<p>An die Namen der eingebetteten Klassen kommst du auch nicht über ., sondern über den Scope-Operator ::</p>
<pre><code class="language-cpp">for(list&lt;CChildDialog::StructName&gt;::iterator i = m_ChildDlg.m_list.begin();...)
</code></pre>
<p>PS: public Member sind böse <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/1318803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318803</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 05 Jul 2007 10:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf globale list eines anderen Dialoges on Thu, 05 Jul 2007 11:19:36 GMT]]></title><description><![CDATA[<p>Ok besten Dank, jetzt kann ich auf die bösen &quot;public member&quot; von außen zugreifen <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/1318852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318852</guid><dc:creator><![CDATA[Dressman1981]]></dc:creator><pubDate>Thu, 05 Jul 2007 11:19:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf globale list eines anderen Dialoges on Thu, 05 Jul 2007 11:23:41 GMT]]></title><description><![CDATA[<p>Dressman1981 schrieb:</p>
<blockquote>
<p>jetzt kann ich auf die bösen &quot;public member&quot; von außen zugreifen <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>
</blockquote>
<p>Ja, und niemand kann überwachen, was mit ihnen passieren wird (das ist der Grund, warum man sie vermeiden sollte - du hast keine Kontrolle darüber, wer was mit deinen Daten anstellt). Die bessere Lösung ist es, die Membervariablen private zu setzen und nur über genau definierte Getter/Setter Zugriff zu erlauben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318854</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 05 Jul 2007 11:23:41 GMT</pubDate></item></channel></rss>