<?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[auf protected variablen einfach zugreifen]]></title><description><![CDATA[<p>wie greife ich von klasse a auf eine protected variable von b zu?</p>
<p>b hat</p>
<p>CArray</p>
<p>wie kann ich jetzt ohne irgendwelche kopiervorgänge lesen drauf zugreifen?</p>
<p>ich könnte die variable public machen, aber ich will nicht das a einfach removeall macht.</p>
<p>wieso kann ich bei c++ nicht einfach unixmässig nur LESEN drauf zugreifen.</p>
<p>das wärs doch</p>
<p>typ</p>
<p>- gar nicht<br />
- lesen<br />
- lesen + schreibend</p>
<p>also was mach ich jetzt?</p>
<p>ich könnte z.b. eine methode VariablexyGetSize() und dann eine VariablexyGetAtPos()</p>
<p>dann könnt ich einfach auf alles zugreifen, aber das kanns doch nicht sein</p>
<p>und</p>
<p>CArray *GetVariable();</p>
<p>da könnt ich doch auch die varibalen verändern.</p>
<p>hmmm, wie würdet ihr das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/131465/auf-protected-variablen-einfach-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 04:01:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/131465.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Jan 2006 17:37:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 17:37:59 GMT]]></title><description><![CDATA[<p>wie greife ich von klasse a auf eine protected variable von b zu?</p>
<p>b hat</p>
<p>CArray</p>
<p>wie kann ich jetzt ohne irgendwelche kopiervorgänge lesen drauf zugreifen?</p>
<p>ich könnte die variable public machen, aber ich will nicht das a einfach removeall macht.</p>
<p>wieso kann ich bei c++ nicht einfach unixmässig nur LESEN drauf zugreifen.</p>
<p>das wärs doch</p>
<p>typ</p>
<p>- gar nicht<br />
- lesen<br />
- lesen + schreibend</p>
<p>also was mach ich jetzt?</p>
<p>ich könnte z.b. eine methode VariablexyGetSize() und dann eine VariablexyGetAtPos()</p>
<p>dann könnt ich einfach auf alles zugreifen, aber das kanns doch nicht sein</p>
<p>und</p>
<p>CArray *GetVariable();</p>
<p>da könnt ich doch auch die varibalen verändern.</p>
<p>hmmm, wie würdet ihr das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955881</guid><dc:creator><![CDATA[c##]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 17:42:32 GMT]]></title><description><![CDATA[<p>die andere klass emuss ein freund sein</p>
<p>in public von a:</p>
<p>friend class b;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955887</guid><dc:creator><![CDATA[derassigenixwisser]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 17:48:45 GMT]]></title><description><![CDATA[<p>Gib eine const Reference darauf nach außen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955896</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 17:50:07 GMT]]></title><description><![CDATA[<p>was ist das?<br />
const referance?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955898</guid><dc:creator><![CDATA[das8798]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:50:07 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 17:51:53 GMT]]></title><description><![CDATA[<p>derassigenixwisser schrieb:</p>
<blockquote>
<p>die andere klass emuss ein freund sein</p>
<p>in public von a:</p>
<p>friend class b;</p>
</blockquote>
<p>ok und ausser dieser möglichkeit, ich habe 2 grosse mfc gui klassen, die will ich eigentlich nicht friend deklarieren. würde nicht wenn a friend b wäre lesen und schreibend zugriff haben, oder macht friend nur lesend zugriff?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955900</guid><dc:creator><![CDATA[c##]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:51:53 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 17:53:53 GMT]]></title><description><![CDATA[<p>schau inna hiulfe nach - habe hier keinen bcb!</p>
<p>friend macht meiner meinung nach aber lese und schreibzugriff - da es die volle kontrolle hat. a kann aber dann nicht auf b zugreifen</p>
<p>mach doch ne funktion die den wert rausgibt^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955901</guid><dc:creator><![CDATA[ffsdf]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:53:53 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 18:12:13 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">const CArray&amp; A::GetMyArray() const {
  return myArray;
}
</code></pre>
<p>Wobei erstes const wichtig ist! D.h. das der Rückgabewert vom Aufrufer nicht geändert werden darf. Du kannst das auch als const Pointer zurück geben, wenn es sich um einen Pointer handelt. Einfach das &amp; durch * austauschen.</p>
<p>Zweiteres const sagt nur, das die GetMyArray()-Methode keine Änderungen macht, wärend des Aufrufs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955917</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 03 Jan 2006 18:12:13 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 18:40:23 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Zweiteres const sagt nur, das die GetMyArray()-Methode keine Änderungen macht, wärend des Aufrufs.</p>
</blockquote>
<p>Das wird oft missverstanden. Im Wesentlichen besagt es, dass die Methode auf const-Instanzen aufgerufen werden darf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955945</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Tue, 03 Jan 2006 18:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 18:45:19 GMT]]></title><description><![CDATA[<p>aha cool</p>
<p>wenn ich also</p>
<pre><code class="language-cpp">const CArray&amp; A::GetMyArray() const {
  return myArray;
}
</code></pre>
<p>habe, könnte ich ohne kopiervorgänge einfach</p>
<pre><code class="language-cpp">for ( int i = 0; i &lt; meineAvariable.GetMyArray.GetSize(); i++ )
{

// wichtiges

meineAvariable.GetMyArray.Append( meineZahl);
}

// oder müsste ich

temp = meineAvariable.GetMyArray();

// und jetzt mit temp arbeiten?
</code></pre>
<p>vielen dank für eure hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/955952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955952</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Tue, 03 Jan 2006 18:45:19 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 18:59:50 GMT]]></title><description><![CDATA[<p>Ajax! Nein, das wird nicht gehen, da ja der Rückgabewert konstant ist, und somit kann er nicht geändert werden. Man kann in dem Beispiel das CArray nur lesen.</p>
<p>Wenn man Elemente hinzufügen will, dann muß man sowas machen:</p>
<pre><code class="language-cpp">void A::addElement(ElementX x) {
  myCArray.add(x);
}
</code></pre>
<p>Wenn einem das zuviel Arbeit ist und man will dem User eh die Kontrolle über das CArray geben, würde ich sowas machen:</p>
<pre><code class="language-cpp">class A {
   CArray *myArray;
public:
   void setMyArray(CArray *myArray) {
      this-&gt;myArray = myArray;
   }
};
</code></pre>
<p>Und dann selbst einfach benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955974</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 03 Jan 2006 18:59:50 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Tue, 03 Jan 2006 19:03:51 GMT]]></title><description><![CDATA[<p>erwischt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>ups sorry, ich hatte schon ein vier zuviel, ich möchte nur lesen draufzugreifen, wie schon gesagt</p>
<pre><code class="language-cpp">for ( int i = 0; i &lt; meineAvariable.GetMyArray.GetSize(); i++ )
{

// wichtiges

meineAvariable.GetMyArray.ElementAt( i);
}
</code></pre>
<p>so meinte ich das</p>
<p>danke für die vielen mühen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/955987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955987</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Tue, 03 Jan 2006 19:03:51 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Wed, 04 Jan 2006 08:31:00 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<pre><code class="language-cpp">const CArray&amp; A::GetMyArray() const {
  return myArray;
}
</code></pre>
<p>Wobei erstes const wichtig ist! D.h. das der Rückgabewert vom Aufrufer nicht geändert werden darf. Du kannst das auch als const Pointer zurück geben, wenn es sich um einen Pointer handelt. Einfach das &amp; durch * austauschen.</p>
<p>Zweiteres const sagt nur, das die GetMyArray()-Methode keine Änderungen macht, wärend des Aufrufs.</p>
</blockquote>
<p>Danke, aber ich hab ein Problem</p>
<p>Ich kann jetzt z.b. GetSize() von CArray aufrufen, aber nicht ElementAt()</p>
<p>da sagt er mir</p>
<blockquote>
<p>error C2662: 'ElementAt' : this-Zeiger kann nicht von 'const class CArray&lt;unsigned long,unsigned long&gt;' in 'class CArray&lt;unsigned long,unsigned long&gt; &amp;' konvertiert werden</p>
</blockquote>
<p>ist es vielleicht weil ElementAt() eine Referenz zurückgibt?</p>
<blockquote>
<p>CArray::ElementAt<br />
TYPE&amp; ElementAt( int nIndex );</p>
</blockquote>
<p>weiss jemand rat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956311</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Wed, 04 Jan 2006 08:31:00 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Wed, 04 Jan 2006 08:38:15 GMT]]></title><description><![CDATA[<p>PS:</p>
<p>ich habs jetzt so</p>
<pre><code class="language-cpp">class a

protected:
CArray&lt; unsigned long, unsigned long&gt; variable;
public:
const CArray&lt; unsigned long, unsigned long&gt;* GetArray() { return  &amp;variable; };

//dann

const CArray&lt; unsigned long, unsigned long&gt; *temp = a.GetArray();

temp-&gt;GetSize();  // geht :)
temp-&gt;ElementAt(i); // geht nicht wegen der fehlermeldung oben :(
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/956316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956316</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Wed, 04 Jan 2006 08:38:15 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Wed, 04 Jan 2006 09:17:10 GMT]]></title><description><![CDATA[<p>ajax schrieb:</p>
<blockquote>
<p>//dann</p>
<p>const CArray&lt; unsigned long, unsigned long&gt; *temp = a.GetArray();</p>
<p>temp-&gt;GetSize(); // geht <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="🙂"
    /><br />
temp-&gt;ElementAt(i); // geht nicht wegen der fehlermeldung oben <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>[/cpp]</p>
</blockquote>
<p>Der Grund für die Fehlermeldung wurde auf Seite 1 bereits genannt (siehe Post von Ringding).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956343</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Wed, 04 Jan 2006 09:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Wed, 04 Jan 2006 09:26:10 GMT]]></title><description><![CDATA[<p>welches von beiden?</p>
<p>eines ist ja</p>
<blockquote>
<p>Gib eine const Reference darauf nach außen.</p>
</blockquote>
<p>hab ich ja gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956349</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Wed, 04 Jan 2006 09:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Wed, 04 Jan 2006 09:48:30 GMT]]></title><description><![CDATA[<p>Die Lösung ist genau das hier:</p>
<p>Artchi schrieb:</p>
<blockquote>
<p>Wobei erstes const wichtig ist! D.h. das der Rückgabewert vom Aufrufer nicht geändert werden darf.</p>
</blockquote>
<p>Das zurückgegebene Array ist const und deshalb kannst du nur const Methoden aus der CArray darauf anwenden - und da gehört ElementAt() offenbar nicht dazu.</p>
<p>Also ist es wohl am besten, wenn du die entsprechenden Zugriffsmethoden direkt in deiner Klasse A implementierst und dieser die Kontrolle darüber läßt, wie sie mit ihrem Array umgeht.</p>
<p>(PS: Bei deinen Beispielcodes fehlt übrigens ein Klammerpaar - du kannst mit &quot;meineVariable.GetArray**()**.GetSize()&quot; etc auf das Array zugreifen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956354</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 04 Jan 2006 09:48:30 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Wed, 04 Jan 2006 12:33:25 GMT]]></title><description><![CDATA[<p>ok</p>
<p>ich habe jetzt statt CArray einfach</p>
<p>std::vector genommen</p>
<p>da geht es auch nicht <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="😞"
    /> wie mache ich es da? vector müsste ja jedem bekannt sein</p>
<pre><code class="language-cpp">std::vector&lt;unsigned long&gt;	variable;
const std::vector&lt;unsigned long&gt; *GetArray() const{ return  &amp;variable; };

//dann

t.GetArray()-&gt;size();  // geht
t.GetVisibleTourIds2()[5]; // geht nicht :(
</code></pre>
<p>fehlermeldung</p>
<blockquote>
<p>error C2440: 'initializing' : 'const class std::vector&lt;unsigned long,class std::allocator&lt;unsigned long&gt; &gt;' kann nicht in 'unsigned long' konvertiert werden</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/956529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956529</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Wed, 04 Jan 2006 12:33:25 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Wed, 04 Jan 2006 12:58:26 GMT]]></title><description><![CDATA[<p>Wenn Du eine Referenz auf den Vektor zurückgibst statt einen Zeiger müsste das erste mit . statt -&gt; und das zweite unverändert gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956571</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 04 Jan 2006 12:58:26 GMT</pubDate></item><item><title><![CDATA[Reply to auf protected variablen einfach zugreifen on Wed, 04 Jan 2006 13:06:49 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Wenn Du eine Referenz auf den Vektor zurückgibst statt einen Zeiger müsste das erste mit . statt -&gt; und das zweite unverändert gehen.</p>
</blockquote>
<p>ne, geht leider nicht</p>
<p>beim ersten wenn ich den .(operator) nehme, dann sagt er mir &quot;muss struktur bla bla bla sein&quot; beim -&gt;(operator) da meckert er nicht mehr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956583</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Wed, 04 Jan 2006 13:06:49 GMT</pubDate></item></channel></rss>