<?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[code erklärung C++ Pointer]]></title><description><![CDATA[<p>Hi,</p>
<p>ich lese mir gerade den Artikel hier durch: <a href="http://magazin.c-plusplus.net/artikel/Pointer%20in%20C%28PlusPlus%29" rel="nofollow">http://magazin.c-plusplus.net/artikel/Pointer in C(PlusPlus)</a></p>
<p>Die Materie an sich ist kein Problem. Was der folgende Code macht, ist auch soweit klar nur habe ich da ein paar fragen, die ich mir selber nicht beantworten kann.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class Integer {
public:
	explicit Integer( int i=0 ) : data(i) {}
	Integer( const Integer &amp;i ) : data(i.data) {}
	~Integer() {}

	inline void setData( int i ) { data = i; }
	inline int getData() const { return data; }

	Integer&amp; operator=( int i ) {
		data = i;
		return *this;
	}

	Integer&amp; operator=( const Integer &amp;i ) {
		if (this == &amp;i)
			return *this;

		data = i.data;
		return *this;
	}
private:
	int data;
	operator int () const;
};

int main(int argc, char **argv) {
	Integer myInt(7);

	Integer *pi = &amp;myInt;
	(*pi).setData(12);
	cout &lt;&lt; pi-&gt;getData() &lt;&lt; '\n';

	return 0;
}
</code></pre>
<p>Kann mir jemand einmal erklären was das hier bedeutet?</p>
<pre><code class="language-cpp">explicit Integer( int i=0 ) : data(i) {}
Integer( const Integer &amp;i ) : data(i.data) {}
</code></pre>
<p>Das sind beides Konstruktoren, der erste erwartet int, wenn ich nichts übergebe ist int automatisch 0 der 2. eine Referenz von Integer soweit ist das klar.</p>
<p>Was bedeutet aber : data(i) das raffe ich nicht. data ist vom typ int. Ist das ein casting? Und was bedeutet : data(i.data) 1. verstehe ich das mit dem : nicht, ich kenne das nur aus Klassenvererbung:</p>
<pre><code class="language-cpp">class B : public A {};
</code></pre>
<p>data und i sind beide vom typ integer deswegen verstehe ich den Zugriff i.data nicht....</p>
<p>Das mit der Operatoren überladung ist auch soweit klar, jedoch was bedeutet das hier:</p>
<pre><code class="language-cpp">operator int () const;
</code></pre>
<p>Das ist eine Read-Only methode, für int oder wie kann man das verstehen?</p>
<p>Hoffe mir kann jemand helfen.</p>
<p>ciao BrainError</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/215082/code-erklärung-c-pointer</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 19:16:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/215082.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Jun 2008 09:29:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to code erklärung C++ Pointer on Fri, 06 Jun 2008 09:29:17 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich lese mir gerade den Artikel hier durch: <a href="http://magazin.c-plusplus.net/artikel/Pointer%20in%20C%28PlusPlus%29" rel="nofollow">http://magazin.c-plusplus.net/artikel/Pointer in C(PlusPlus)</a></p>
<p>Die Materie an sich ist kein Problem. Was der folgende Code macht, ist auch soweit klar nur habe ich da ein paar fragen, die ich mir selber nicht beantworten kann.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class Integer {
public:
	explicit Integer( int i=0 ) : data(i) {}
	Integer( const Integer &amp;i ) : data(i.data) {}
	~Integer() {}

	inline void setData( int i ) { data = i; }
	inline int getData() const { return data; }

	Integer&amp; operator=( int i ) {
		data = i;
		return *this;
	}

	Integer&amp; operator=( const Integer &amp;i ) {
		if (this == &amp;i)
			return *this;

		data = i.data;
		return *this;
	}
private:
	int data;
	operator int () const;
};

int main(int argc, char **argv) {
	Integer myInt(7);

	Integer *pi = &amp;myInt;
	(*pi).setData(12);
	cout &lt;&lt; pi-&gt;getData() &lt;&lt; '\n';

	return 0;
}
</code></pre>
<p>Kann mir jemand einmal erklären was das hier bedeutet?</p>
<pre><code class="language-cpp">explicit Integer( int i=0 ) : data(i) {}
Integer( const Integer &amp;i ) : data(i.data) {}
</code></pre>
<p>Das sind beides Konstruktoren, der erste erwartet int, wenn ich nichts übergebe ist int automatisch 0 der 2. eine Referenz von Integer soweit ist das klar.</p>
<p>Was bedeutet aber : data(i) das raffe ich nicht. data ist vom typ int. Ist das ein casting? Und was bedeutet : data(i.data) 1. verstehe ich das mit dem : nicht, ich kenne das nur aus Klassenvererbung:</p>
<pre><code class="language-cpp">class B : public A {};
</code></pre>
<p>data und i sind beide vom typ integer deswegen verstehe ich den Zugriff i.data nicht....</p>
<p>Das mit der Operatoren überladung ist auch soweit klar, jedoch was bedeutet das hier:</p>
<pre><code class="language-cpp">operator int () const;
</code></pre>
<p>Das ist eine Read-Only methode, für int oder wie kann man das verstehen?</p>
<p>Hoffe mir kann jemand helfen.</p>
<p>ciao BrainError</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523922</guid><dc:creator><![CDATA[BrainError]]></dc:creator><pubDate>Fri, 06 Jun 2008 09:29:17 GMT</pubDate></item><item><title><![CDATA[Reply to code erklärung C++ Pointer on Fri, 06 Jun 2008 09:34:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>1. das nennt man Initialisierungsliste<br />
<a href="http://tutorial.schornboeck.net/initliste.htm" rel="nofollow">http://tutorial.schornboeck.net/initliste.htm</a><br />
2.</p>
<pre><code class="language-cpp">operator int () const;
</code></pre>
<p>ist ein Konvertierungsoperator. Damit kannst du eine Instanz deiner Klasse Integer wie ein normales int in Berechnungen verwenden (konvertiert Integer nach int).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523927</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 06 Jun 2008 09:34:24 GMT</pubDate></item><item><title><![CDATA[Reply to code erklärung C++ Pointer on Fri, 06 Jun 2008 09:46:58 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523933</guid><dc:creator><![CDATA[BrainError]]></dc:creator><pubDate>Fri, 06 Jun 2008 09:46:58 GMT</pubDate></item><item><title><![CDATA[Reply to code erklärung C++ Pointer on Fri, 06 Jun 2008 11:29:58 GMT]]></title><description><![CDATA[<p>BrainError schrieb:</p>
<blockquote>
<p>Was bedeutet aber : data(i)</p>
</blockquote>
<p>Das ist der Kopierkonstruktor. Man kann dies in etwa so auffassen:</p>
<pre><code class="language-cpp">int i; //einen Wert erfragen( sieht beim erzeugen eines objektes dann z.B. so aus: Interer MyInteger( 10 ); -&gt; i wird der Wert 10 zugewiesen
data = i; // der Wert von i wird in data gespeichert
</code></pre>
<p>BrainError schrieb:</p>
<blockquote>
<p>Und was bedeutet : data(i.data)</p>
</blockquote>
<p>Das bedeutet ganz einfach dass data mit dem wert des übergebenen Objekts initialisiert wird( das ja auch eine &quot;data&quot; variable enthält ).</p>
<blockquote>
<pre><code class="language-cpp">operator int () const;
</code></pre>
</blockquote>
<p>Das hier ist ein sogenannter Typenumwandlungsoperator( der Begriff &quot;Konvertierungsoperator&quot; ist mir neu ) damit sind sowohl implizite als auch explizite Umwandlungen möglich( siehe auch Braunsteins Post ).</p>
<p>//EDIT: steht ja alles im tutorial von Braunstein <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/1523985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523985</guid><dc:creator><![CDATA[double *T]]></dc:creator><pubDate>Fri, 06 Jun 2008 11:29:58 GMT</pubDate></item><item><title><![CDATA[Reply to code erklärung C++ Pointer on Fri, 06 Jun 2008 11:58:39 GMT]]></title><description><![CDATA[<p>double *T schrieb:</p>
<blockquote>
<p>BrainError schrieb:</p>
<blockquote>
<p>Was bedeutet aber : data(i)</p>
</blockquote>
<p>Das ist der Kopierkonstruktor.</p>
</blockquote>
<p>Nein. <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/1524010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1524010</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 06 Jun 2008 11:58:39 GMT</pubDate></item><item><title><![CDATA[Reply to code erklärung C++ Pointer on Fri, 06 Jun 2008 13:25:50 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>double *T schrieb:</p>
<blockquote>
<p>BrainError schrieb:</p>
<blockquote>
<p>Was bedeutet aber : data(i)</p>
</blockquote>
<p>Das ist der Kopierkonstruktor.</p>
</blockquote>
<p>Nein. <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>
</blockquote>
<p>stimmt <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="😃"
    /> Ist natürlich ein Allgemeiner Konstruktor. Bin durcheinander gekommen. Aber das hier ist einer:</p>
<pre><code class="language-cpp">Integer( const Integer &amp;i ) : data(i.data) {}
</code></pre>
<p>sry <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/1524081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1524081</guid><dc:creator><![CDATA[double *T]]></dc:creator><pubDate>Fri, 06 Jun 2008 13:25:50 GMT</pubDate></item></channel></rss>