<?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[Adresse einer deklarieren Variable in public auslesen]]></title><description><![CDATA[<p>Hallo alle zusammen</p>
<p>Habe mir in den letzten Monaten die Sprache C und C++ reingezogen. Eher gelernt als jetzt groß angewendet.</p>
<p>Und da kam mir letztens folgende Frage:</p>
<p>Ich lege im privat Bereich einer Klasse eine Variable an und instantiiere diese Klasse zu einem Objekt. Und finde irgendwie, wenn das möglich ist, die Adresse dieser Variablen wo deren Speicher ist heraus. Wenn ich diese Adresse dann an einen Zeiger übergebe, könnte ich Mittels Zeiger dann auf diese Variable extern zugreifen?</p>
<p>Als Neuling weiß ich natürlich nicht wie eine Klasse auf dem Computer angelegt wird, wie private, public und protected auf dem Speicher funktioniert und wie Zeiger auf einem Speicher angelegt werden. Die Funktion habe ich schon verstanden, nehme ich mal an <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Okay und wenn dass dann geht, wie könnte man dann die Adresse eventuell herausfinden?</p>
<p>Gruß arturkb <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/261425/adresse-einer-deklarieren-variable-in-public-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 09:16:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/261425.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Feb 2010 11:59:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Adresse einer deklarieren Variable in public auslesen on Thu, 18 Feb 2010 11:59:11 GMT]]></title><description><![CDATA[<p>Hallo alle zusammen</p>
<p>Habe mir in den letzten Monaten die Sprache C und C++ reingezogen. Eher gelernt als jetzt groß angewendet.</p>
<p>Und da kam mir letztens folgende Frage:</p>
<p>Ich lege im privat Bereich einer Klasse eine Variable an und instantiiere diese Klasse zu einem Objekt. Und finde irgendwie, wenn das möglich ist, die Adresse dieser Variablen wo deren Speicher ist heraus. Wenn ich diese Adresse dann an einen Zeiger übergebe, könnte ich Mittels Zeiger dann auf diese Variable extern zugreifen?</p>
<p>Als Neuling weiß ich natürlich nicht wie eine Klasse auf dem Computer angelegt wird, wie private, public und protected auf dem Speicher funktioniert und wie Zeiger auf einem Speicher angelegt werden. Die Funktion habe ich schon verstanden, nehme ich mal an <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Okay und wenn dass dann geht, wie könnte man dann die Adresse eventuell herausfinden?</p>
<p>Gruß arturkb <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857512</guid><dc:creator><![CDATA[arti]]></dc:creator><pubDate>Thu, 18 Feb 2010 11:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse einer deklarieren Variable in public auslesen on Thu, 18 Feb 2010 12:09:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class test {
public:
	test(int val): v(val) { }
	int* get() { return &amp;v; }
private:
	int v;
};

int main()
{
	test test(4);
	int* p = test.get();
	*p = 5;
	cout &lt;&lt; *(test.get()) &lt;&lt; endl;
	cin.get();
}
</code></pre>
<p>Also es geht schon, nur ist es generell keine gute Idee, dem Benutzer einer Klasse die Möglichkeit zu geben auf private Member zuzugreifen.</p>
<p>bnz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857516</guid><dc:creator><![CDATA[bnz]]></dc:creator><pubDate>Thu, 18 Feb 2010 12:09:58 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse einer deklarieren Variable in public auslesen on Thu, 18 Feb 2010 12:12:25 GMT]]></title><description><![CDATA[<p><code>private</code> ist <code>nicht</code> als Schutz vor Hacker gedacht. <code>private</code> ist zum Schutz des Programmierers da.</p>
<p>Wenn Programmierer A etwas in einer Klasse <code>private</code> macht, das von Programmierer B benutzt werden soll, dann heisst das für Programmierer B: &quot;Das fasse besser nicht an. Vielleicht wird das nicht so benutzt, wie ich denke&quot;.<br />
Wenn Programmierer B trotzdem darauf zugreifen will, kann er einfach aus <code>private</code>  <code>public</code> machen. Nur ist er dann auch der Doofe, wenn Programmierer A etwas an dem <code>private</code> ändert (z.B. die Variable entfernt).</p>
<p>Auf den Speicher hat <code>private</code> keine Auswirkung. Er wird dadurch nicht geschützt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857519</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 18 Feb 2010 12:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse einer deklarieren Variable in public auslesen on Thu, 18 Feb 2010 12:14:46 GMT]]></title><description><![CDATA[<p>arti schrieb:</p>
<blockquote>
<p>Habe mir in den letzten Monaten die Sprache<strong>n</strong> C und C++ reingezogen.</p>
</blockquote>
<p>FTFY.</p>
<blockquote>
<p>Ich lege im privat Bereich einer Klasse eine Variable an und instantiiere diese Klasse zu einem Objekt. Und finde irgendwie, wenn das möglich ist, die Adresse dieser Variablen wo deren Speicher ist heraus. Wenn ich diese Adresse dann an einen Zeiger übergebe, könnte ich Mittels Zeiger dann auf diese Variable extern zugreifen?</p>
</blockquote>
<p>Ja, natürlich.</p>
<blockquote>
<p>Okay und wenn dass dann geht, wie könnte man dann die Adresse eventuell herausfinden?</p>
</blockquote>
<p>Mit dem Adressoperator <strong>&amp;</strong>. Das muss natürlich in einem Kontext sein, in dem die private Variable sichtbar ist, also innerhalb der Klasse oder in einem friend der Klasse:</p>
<pre><code class="language-cpp">class Foo {
private:
  int x;
public:
  int* get_x() { return &amp;x; }
};
...
Foo f;
int* p = f.get_x();
... mit *p arbeiten ...
</code></pre>
<p>Ohne dass die Klasse das selbst &quot;will&quot;, kommt man nicht an x heran.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857520</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Feb 2010 12:14:46 GMT</pubDate></item><item><title><![CDATA[Reply to Adresse einer deklarieren Variable in public auslesen on Thu, 18 Feb 2010 15:30:35 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>arti schrieb:</p>
<blockquote>
<p>Habe mir in den letzten Monaten die Sprache<strong>n</strong> C und C++ reingezogen.</p>
</blockquote>
<p>FTFY.</p>
</blockquote>
<p>Du pedant! :p Sei doch froh das er <strong>nicht</strong> 'C/C++' geschrieben hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1857657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1857657</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Thu, 18 Feb 2010 15:30:35 GMT</pubDate></item></channel></rss>