<?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[Frage zu Klassenerstellung]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein Frage zur Erstellung von Klassen:</p>
<p>Warum kann ich denn ein Attribut nicht standardmäßig in der Klasse definieren, sondern muss das im Konstruktor machen:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class Testen {
    private:
            int zahl1, zahl2;

            //warum funktioniert das nicht??????
            //zahl2 = 6;

            public:
                   Testen()
                    {
                           zahl2 =6;
                    }

                   int rechnen (int z1) {

                       return z1*zahl2;

                       }
      };

int main(int argc, char *argv[])
{
    Testen test1;

    cout &lt;&lt; test1.rechnen(5);

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Danke!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285105/frage-zu-klassenerstellung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 12:19:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285105.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Apr 2011 06:52:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 06:52:35 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein Frage zur Erstellung von Klassen:</p>
<p>Warum kann ich denn ein Attribut nicht standardmäßig in der Klasse definieren, sondern muss das im Konstruktor machen:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class Testen {
    private:
            int zahl1, zahl2;

            //warum funktioniert das nicht??????
            //zahl2 = 6;

            public:
                   Testen()
                    {
                           zahl2 =6;
                    }

                   int rechnen (int z1) {

                       return z1*zahl2;

                       }
      };

int main(int argc, char *argv[])
{
    Testen test1;

    cout &lt;&lt; test1.rechnen(5);

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Danke!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049116</guid><dc:creator><![CDATA[RR23]]></dc:creator><pubDate>Thu, 14 Apr 2011 06:52:35 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 06:57:46 GMT]]></title><description><![CDATA[<p>Eine Variable wird nicht fix initialisiert, sondern... variabel. Das hängt eigentlich immer von Argumenten im Constructor-Aufruf ab, deswegen wird dadurch initialisiert.</p>
<p>Wenn Du etwas fix initialisieren möchtest, dann willst Du eigentlich keine Variable, sondern eine statische Konstante. Im Klassenkontext also eine <code>static const int bla = 11;</code></p>
<p>Und für solche Konstanten funktioniert diese Schreibweise dann auch wieder. <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/2049120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049120</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 14 Apr 2011 06:57:46 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 07:03:07 GMT]]></title><description><![CDATA[<p>Du könntest es <code>static</code> machen. Aber wieso willst du ihn nicht im CTor?</p>
<p>EDIT: Schon das zweite Mal zu lahm <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/2049122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049122</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Thu, 14 Apr 2011 07:03:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 07:03:06 GMT]]></title><description><![CDATA[<p>Achwas, eben haben wir uns doch gut ergänzt. Ansonsten Redundanz durch Mehrfachantwort zur Verifizierung der Aussage. <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/2049126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049126</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 14 Apr 2011 07:03:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 07:18:06 GMT]]></title><description><![CDATA[<p>Danke für die Antworten!</p>
<p>Was meinst du denn mit CTor?</p>
<p>Noch eine Frage zur Standardsichtbarkeit von C++:</p>
<p>Sind die Attribute und Variablen wenn man keine Sichtbarkeit angibt standardmäßig mit private deklariert?</p>
<p>Bei Java ist ja dann die Sichtbarkeit &quot;Package local&quot; (ich glaube das bedeutet dass man innerhalb des packages die Sichtbarkeit &quot;public&quot; hat, oder?)</p>
<p>Danke!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049133</guid><dc:creator><![CDATA[RR23]]></dc:creator><pubDate>Thu, 14 Apr 2011 07:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 07:20:06 GMT]]></title><description><![CDATA[<p>RR23 schrieb:</p>
<blockquote>
<p>Was meinst du denn mit CTor?</p>
</blockquote>
<p><strong>C</strong>onstruc<strong>tor</strong>.</p>
<p>RR23 schrieb:</p>
<blockquote>
<p>Sind die Attribute und Variablen wenn man keine Sichtbarkeit angibt standardmäßig mit private deklariert?</p>
</blockquote>
<p>Bei <code>class</code> sind sie <code>private</code> . Bei <code>struct</code> aber sind sie <code>public</code> . Genau wie bei der Vererbung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049136</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Thu, 14 Apr 2011 07:20:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 07:45:37 GMT]]></title><description><![CDATA[<p>Eine solche Möglichkeit zur Initialisierung ist übrigens für C++0x geplant:<br />
<a href="http://www2.research.att.com/~bs/C++0xFAQ.html#member-init" rel="nofollow">http://www2.research.att.com/~bs/C++0xFAQ.html#member-init</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049151</guid><dc:creator><![CDATA[thomas___]]></dc:creator><pubDate>Thu, 14 Apr 2011 07:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 08:12:41 GMT]]></title><description><![CDATA[<p>Das was du im Ctor machst ist keine Initialisierung, sondern eine Zuweisung. Wenn dann doch bitte richtig! Komisch das es hier noch niemand korrigiert hat?</p>
<p>Was du gemacht hast ist folgendes: es wird das Objekt kreiert, samt Member-Variablen. Bei primitiven Typen mit einem undefinierten Wert! Und dann im Ctor-Scope wird verspätet der Wert 6 zugewiesen.</p>
<p>Wenn du initialisieren willst, mußt du das in der Initialisierungsliste tun:</p>
<pre><code class="language-cpp">class Testen {

    int zahl1, zahl2;

public:
    Testen() : zahl2(6)
    {
    }
};
</code></pre>
<p>Hier wird gleich der Wert 6 beim Anlegen von zahl2 gesetzt. Das wird besonders wichtig, wenn du später keine primitiven Datentypen nutzt, sondern Strukturdaten bzw. Objekte. Dann wird der Unterschied sogar Auswirkungen im Verhalten zeigen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049162</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 14 Apr 2011 08:12:41 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 08:46:58 GMT]]></title><description><![CDATA[<p>thomas___ schrieb:</p>
<blockquote>
<p>Eine solche Möglichkeit zur Initialisierung ist übrigens für C++0x geplant:<br />
<a href="http://www2.research.att.com/~bs/C++0xFAQ.html#member-init" rel="nofollow">http://www2.research.att.com/~bs/C++0xFAQ.html#member-init</a></p>
</blockquote>
<p>Ich sehe nicht ganz den Nutzen einer solchen Konstruktion. Wenn ein für alle Objekte sichtbarer, konstanter, privater Wert vorhanden ist, braucht man ihn doch nicht für JEDES Objekt zu erstellen (ich weiß jetzt nicht, ob dies in der Praxis und im Maschinencode so gehandhabt wird, aber die Syntax impliziert dies doch recht stark).</p>
<p>Allerdings wäre es schön, so etwas wie einen statischen Konstruktor in C++ zu haben, wie in C#. Oder bin ich mal wieder nicht aktuell und gibt es das bereits?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049181</guid><dc:creator><![CDATA[Glühbirne]]></dc:creator><pubDate>Thu, 14 Apr 2011 08:46:58 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 08:49:20 GMT]]></title><description><![CDATA[<p>Glühbirne schrieb:</p>
<blockquote>
<p>thomas___ schrieb:</p>
<blockquote>
<p>Eine solche Möglichkeit zur Initialisierung ist übrigens für C++0x geplant:<br />
<a href="http://www2.research.att.com/~bs/C++0xFAQ.html#member-init" rel="nofollow">http://www2.research.att.com/~bs/C++0xFAQ.html#member-init</a></p>
</blockquote>
<p>Ich sehe nicht ganz den Nutzen einer solchen Konstruktion. Wenn ein für alle Objekte sichtbarer, konstanter, privater Wert vorhanden ist, braucht man ihn doch nicht für JEDES Objekt zu erstellen (ich weiß jetzt nicht, ob dies in der Praxis und im Maschinencode so gehandhabt wird, aber die Syntax impliziert dies doch recht stark).</p>
</blockquote>
<p>Der Wert ist nicht konstant!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049183</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Apr 2011 08:49:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 08:52:36 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Der Wert ist nicht konstant!</p>
</blockquote>
<p>Mein innerer Parser scheint wohl nicht zu funktionieren ;), denn ich kann deinen Satz nicht auslösen! Ist er eine Berichtigung? Eine Erklärung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049186</guid><dc:creator><![CDATA[Glühbirne]]></dc:creator><pubDate>Thu, 14 Apr 2011 08:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 09:44:24 GMT]]></title><description><![CDATA[<p>Glühbirne schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Der Wert ist nicht konstant!</p>
</blockquote>
<p>Mein innerer Parser scheint wohl nicht zu funktionieren ;), denn ich kann deinen Satz nicht auslösen! Ist er eine Berichtigung? Eine Erklärung?</p>
</blockquote>
<p>Naja, ein Widerspruch zu:</p>
<p>Glühbirne schrieb:</p>
<blockquote>
<p>Wenn ein für alle Objekte sichtbarer, konstanter, privater Wert vorhanden ist,</p>
</blockquote>
<p>Die Variable wird zwar immer mit dem gleichen Wert initialisiert, kann aber jederzeit geändert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049211</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 14 Apr 2011 09:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 10:34:56 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Die Variable wird zwar immer mit dem gleichen Wert initialisiert, kann aber jederzeit geändert werden.</p>
</blockquote>
<p>Ach so ... na, das stimmt wohl. Wieder was gelernt, danke! <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/2049235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049235</guid><dc:creator><![CDATA[Glühbirne]]></dc:creator><pubDate>Thu, 14 Apr 2011 10:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassenerstellung on Thu, 14 Apr 2011 10:56:36 GMT]]></title><description><![CDATA[<p>[OT]<br />
Viel zu spät hin oder her - es ist als Lernender / Anfänger<br />
ein schönes Gefühl, wenn man die Antwort gewusst hätte.<br />
*feststell*<br />
<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 />
[/OT]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2049245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2049245</guid><dc:creator><![CDATA[dennis.cpp unangemeldet]]></dc:creator><pubDate>Thu, 14 Apr 2011 10:56:36 GMT</pubDate></item></channel></rss>