<?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[interesante Dinge !]]></title><description><![CDATA[<pre><code>class K
{
   private: double m, b;
   public:
       K(double x, double y) { m = x; b = y; }
       void geschnitt(K* g)  { g-&gt;m = 99.0; }
       double get()  { return m; }
};

int main()
{
        K g1(2.0,3.0);
	K g2(1.0,9.0);
	g1.geschnitt(&amp;g2);
	cout&lt;&lt;g2.get();
}
</code></pre>
<p>interesante ist:</p>
<p>1. class K darf ich 'K' nicht klein schreiben!<br />
2. private 'm' kann man zugreifen!</p>
<p>hast du auch solche Dinge schon getroffen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153333/interesante-dinge</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 07:28:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153333.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 15 Jul 2006 12:08:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 12:08:51 GMT]]></title><description><![CDATA[<pre><code>class K
{
   private: double m, b;
   public:
       K(double x, double y) { m = x; b = y; }
       void geschnitt(K* g)  { g-&gt;m = 99.0; }
       double get()  { return m; }
};

int main()
{
        K g1(2.0,3.0);
	K g2(1.0,9.0);
	g1.geschnitt(&amp;g2);
	cout&lt;&lt;g2.get();
}
</code></pre>
<p>interesante ist:</p>
<p>1. class K darf ich 'K' nicht klein schreiben!<br />
2. private 'm' kann man zugreifen!</p>
<p>hast du auch solche Dinge schon getroffen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1098158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098158</guid><dc:creator><![CDATA[damo]]></dc:creator><pubDate>Sat, 15 Jul 2006 12:08:51 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 12:18:13 GMT]]></title><description><![CDATA[<p>Hallo</p>
<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="😕"
    /><br />
Wer sagt das du K generell nicht klein schreiben darfst? Welche Fehlermeldung genau?<br />
Wo greifst du von außerhalb auf das private Element m zu?<br />
Bedenke, das innerhalb einer Klasse alle Instanzen Zugriff auf die privaten Elemente andere Instanzen haben. Das ist kein Fehler sondern so gewollt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1098166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098166</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 15 Jul 2006 12:18:13 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Wed, 18 Mar 2009 17:24:02 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a>:<br />
Er darf <code>K</code> nicht klein schreiben, da sonst der Konstruktor nicht mehr funktioniert und <code>K</code> bei der Instanziierung als undefined identifier angezeigt wird.</p>
<p>[edit]<br />
OK, ich weiss, das war nicht wirklich hilfreich.<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12937">@damo</a>: Wenn du <code>class K</code> in <code>class k</code> änderst, musst du auch die anderen <code>K</code> s im Quelltext mit in <code>k</code> ändern, sonst weiss der Compiler nicht, was du mit <code>K</code> meinst. Aber wenn du das so wie von mir und von 1310-Logik (unten) geschildert machst, dann kannst du natürlich alles umbenennen, das ist dein gutes Recht.<br />
[/edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1098176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098176</guid><dc:creator><![CDATA[skreutzer]]></dc:creator><pubDate>Wed, 18 Mar 2009 17:24:02 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 12:40:02 GMT]]></title><description><![CDATA[<p>er muss dann natürlcih alle 'K' klein schreiben <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/1098178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098178</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Sat, 15 Jul 2006 12:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 15:06:13 GMT]]></title><description><![CDATA[<p><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="😃"
    /> vielen Dank 1310-Logik für Verstandnis! <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>ha, sorry zu alles, gerade habe ich die Codes einfach in anderer Codes eingefügt(ich benutzte .NET, so wollte nicht jedes mal project bilden), bei Original-Codes gibt es globale Variable &quot;int k&quot;, aber die CompilerFehler lautet &quot;Syntaxfehler: Fehlendes ';' vor Bezeichner 'g1' &quot; warum nicht z.B. &quot;Name-Konflikt&quot;.</p>
<p>bei 2. ,akari, danke sehr, du hast recht. interesiert mich ist, was bedeutet eigentlich diese Technik?</p>
<pre><code class="language-cpp">void geschnitt(K* g)  { g-&gt;m = 99.0; }
</code></pre>
<p>in class 'K' wieder ein 'K' benutze, bin ich nicht 100% klar, weil ich dachte, die class K noch nicht fertig definiert, warum und wie kann man benutze?(Rekursion?) so ich habe diese Technik nie benutzt, deswegen habe ich mich sehr interessiert.<br />
klar, in class K, die Konstruktor benutzt 'K', return-wert von Methode kann auch 'K' sein.</p>
<p>dank alles!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1098240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098240</guid><dc:creator><![CDATA[damo]]></dc:creator><pubDate>Sat, 15 Jul 2006 15:06:13 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 14:57:02 GMT]]></title><description><![CDATA[<p>&lt;blödrumalber&gt;<br />
Du kannst K natürlich auch L nennen, oder kuhle_klasse<br />
&lt;/blödrumalber&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1098248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098248</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Sat, 15 Jul 2006 14:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 15:41:10 GMT]]></title><description><![CDATA[<p>damo schrieb:</p>
<blockquote>
<p>akari, danke sehr, du hast recht. interesiert mich ist, was bedeutet eigentlich diese Technik?</p>
<pre><code class="language-cpp">void geschnitt(K* g)  { g-&gt;m = 99.0; }
</code></pre>
<p>in class 'K' wieder ein 'K' benutze, bin ich nicht 100% klar, weil ich dachte, die class K noch nicht fertig definiert, warum und wie kann man benutze?(Rekursion?) so ich habe diese Technik nie benutzt, deswegen habe ich mich sehr interessiert.<br />
klar, in class K, die Konstruktor benutzt 'K', return-wert von Methode kann auch 'K' sein.</p>
</blockquote>
<p>Nein das ist keine Rekursion, sondern du must einfach Klasse von Instanzen trennen.<br />
der Typ K ist als Klasse definiert. Für diese Klasse ist eine Methode namens geschnitt definiert, die als Parameter einen Pointer auf eine Instanz von genau der gleichen Klasse K hat.<br />
Das bedeutet das du bei Ausführung der Methode genau zwei verschiedene Instanzen von K hast : einmal this, in deinem Beispiel mit dem Variablennamen g1 dargestellt. Denn für g1 rufst du die Methode auf.<br />
Die zweite Instanz ist g2, durch das &amp; wird die Adresse der Instanz an die Methode als Parameter übergeben.<br />
Um das ganze etwas greifbarer zu machen hier eine Abänderung :</p>
<pre><code class="language-cpp">void geschnitt(K* g)  { g-&gt;m = this-&gt;m * 2; }
</code></pre>
<p>was nichts anderes bedeutet als das der doppelte Wert von m des g1 in das m von g2 kopiert wird. g1 wird nicht verändert.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1098265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098265</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 15 Jul 2006 15:41:10 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 16:52:33 GMT]]></title><description><![CDATA[<p>vielen vielen Dank für ausführliche Erklärung.<br />
bei private zugreifen:<br />
normaleweise schreibe ich so:<br />
class K<br />
{<br />
private:<br />
double m, b;<br />
public:<br />
K(double x, double y) { m = x; b = y; }<br />
void geschnitt(K* g) { g-&gt;set(99); } // g-&gt;m=99;<br />
double get() { return m; }<br />
void set(double x) { m=x; } // this-&gt;m=x;<br />
};<br />
int main()<br />
{<br />
...... g-&gt;m=99; // falsch!!!<br />
}<br />
normaleweise schreibe ich nicht so: &quot;g-&gt;m=99;&quot;, sondern so: &quot;g-&gt;set(99);&quot; das ist klar, private Element mit Methode zugreifen.<br />
in set-Methode:<br />
'm' kann man direkt zugreifen: m=x;(oder this-&gt;m=x; ) --- natürlich!</p>
<p>in geschnitt-Methode:<br />
'm' kann man auch direkt zugreifen: g-&gt;m=99; --- <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>
<p>du hast schon vorgeschlagen:<br />
Bedenke, das innerhalb einer Klasse alle Instanzen Zugriff auf die privaten Elemente andere Instanzen haben. Das ist kein Fehler sondern so gewollt.</p>
<p>ja, richtig, aber g ist Instanz von K, normalerweise darf g nicht auf 'm' zugreifen(g-&gt;m geht nicht, oder?), nur weil hier g in der Klasse K ist, oder?</p>
<p>vielen Dank</p>
<p>damo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1098284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098284</guid><dc:creator><![CDATA[damo]]></dc:creator><pubDate>Sat, 15 Jul 2006 16:52:33 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 17:00:47 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ums nochmal zusammenzufassen : die Beschränkung von private und protected ist nach Klassen, nicht nach Instanzen.<br />
In einer methode der Klasse K kannst du also auf <strong>alle</strong> Member der Klasse K zugreifen, gleichgültig ob this oder andere Instanz.<br />
Erst bei Zugriff von außen (alles was nicht K:: zugeordnet ist) greift die Beschränkung von private bzw. protected.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1098287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098287</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 15 Jul 2006 17:00:47 GMT</pubDate></item><item><title><![CDATA[Reply to interesante Dinge ! on Sat, 15 Jul 2006 17:05:21 GMT]]></title><description><![CDATA[<p>Wao, sehr schön, alles klar! dank sehr!!! <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/1098289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1098289</guid><dc:creator><![CDATA[damo]]></dc:creator><pubDate>Sat, 15 Jul 2006 17:05:21 GMT</pubDate></item></channel></rss>