<?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[Initialsierung von (Klassen)Attributen]]></title><description><![CDATA[<p>Hey Leute,</p>
<p>hat es einen tieferen Sinn, dass man in C++ Attribute einer Klasse nicht direkt deklarieren und initialisieren kann, also z.B. so</p>
<pre><code class="language-cpp">class A {

  int a = 0;

[...]

};
</code></pre>
<p>Weiterhin verstehe ich nicht genau, warum man Klassenvariablen stets im globalen Bereiche initialisieren muss? Hat dies einen tieferen Sinn?</p>
<p>Danke im voraus und Gruß an alle <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/topic/301517/initialsierung-von-klassen-attributen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 23:50:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301517.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Mar 2012 07:58:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Initialsierung von (Klassen)Attributen on Thu, 29 Mar 2012 07:58:42 GMT]]></title><description><![CDATA[<p>Hey Leute,</p>
<p>hat es einen tieferen Sinn, dass man in C++ Attribute einer Klasse nicht direkt deklarieren und initialisieren kann, also z.B. so</p>
<pre><code class="language-cpp">class A {

  int a = 0;

[...]

};
</code></pre>
<p>Weiterhin verstehe ich nicht genau, warum man Klassenvariablen stets im globalen Bereiche initialisieren muss? Hat dies einen tieferen Sinn?</p>
<p>Danke im voraus und Gruß an alle <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/2196485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196485</guid><dc:creator><![CDATA[MatheStein]]></dc:creator><pubDate>Thu, 29 Mar 2012 07:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to Initialsierung von (Klassen)Attributen on Thu, 29 Mar 2012 09:33:55 GMT]]></title><description><![CDATA[<p>1. Die Idee dahinter ist die Trennung von Klasse (dem Förmchen) und der Klasseninstanz (dem Plätzchen). Mache dir den Unterschied klar, der ist wichtig. Du verlangst hier, dass das Förmchen festlegt, welche Deko auf das Plätzchen kommt!</p>
<ol start="2">
<li></li>
</ol>
<blockquote>
<p>Weiterhin verstehe ich nicht genau, warum man Klassenvariablen stets im globalen Bereiche initialisieren muss?</p>
</blockquote>
<p>Ich habe keine Ahnung, wovon du redest.</p>
<p>3. In C++11 gibt es dieses Feature:</p>
<pre><code class="language-cpp">class C
{
 int x=7; 
public:
 C() {}
};
</code></pre>
<p>entspricht dem C++98 (und natürlich weiterhin richtigem):</p>
<pre><code class="language-cpp">class C
{
 int x;
public:
 C() : x(7) {};
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2196526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196526</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 29 Mar 2012 09:33:55 GMT</pubDate></item><item><title><![CDATA[Reply to Initialsierung von (Klassen)Attributen on Thu, 29 Mar 2012 09:41:31 GMT]]></title><description><![CDATA[<p>Hallo Sepp,</p>
<p>ich glaube wir haben uns falsch verstaden <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>Was ich bei 1. meinte war folgendes:</p>
<p>Warum kann man nicht</p>
<pre><code class="language-cpp">class A {

  int a = 0;

public:

  A(){}
};
</code></pre>
<p>schreiben anstatt</p>
<pre><code class="language-cpp">class A {

  int a;

public:

  A() : a(0) {}
};
</code></pre>
<p>In Java ist dies z.B. möglich wenn ich mich jetzt nicht irre.</p>
<p>und bei 2. meinte ich Klassenvariablen also sowas:</p>
<pre><code class="language-cpp">class B {

  static int b;

public:

  B(){}
}; 

int B::b=0;
</code></pre>
<p>Warum kann man hier nicht direkt sowas schreiben wie</p>
<pre><code class="language-cpp">class B {

  static int b = 0;

public:

  B(){}
};
</code></pre>
<p>Gruß <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/2196527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196527</guid><dc:creator><![CDATA[MatheStein]]></dc:creator><pubDate>Thu, 29 Mar 2012 09:41:31 GMT</pubDate></item><item><title><![CDATA[Reply to Initialsierung von (Klassen)Attributen on Thu, 29 Mar 2012 09:56:51 GMT]]></title><description><![CDATA[<p>Beides sollte doch durch meine Antwort doch schon beantwortet sein.</p>
<p>Das erste darfst du neuerdings, das zweite darfst du bei integralen const Datentypen mit Compilezeitkonstanten sowieso schon, sofern du die Variable auch irgendwo definierst. Ansonsten siehst du hier den Unterschied zwischen einer Deklaration und einer Definition. Nur eine Definition initialisiert, bis auf die genannten besonderen Ausnahmen, die der Faulheit wegen eingeführt wurden<sup>*</sup>. Was sollte eine Deklaration auch initialisieren? Ihr folgt ja schließlich nicht zwangsläufig eine Definition. Außerdem kann es viele Deklarationen zu einer einzigen Definition geben, welche wäre dann die gültige?</p>
<p><sup>*</sup>: Wie du merkst gelten für diese Ausnahmen eben gerade nicht die Punkte, die ich im folgenden aufzähle, daher sind diese Ausnahmen technisch möglich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2196531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196531</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 29 Mar 2012 09:56:51 GMT</pubDate></item><item><title><![CDATA[Reply to Initialsierung von (Klassen)Attributen on Thu, 29 Mar 2012 10:58:43 GMT]]></title><description><![CDATA[<p>Java ist behindert. Hör auf, C++ damit zu vergleichen. Es kotzt mich an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2196539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196539</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 29 Mar 2012 10:58:43 GMT</pubDate></item><item><title><![CDATA[Reply to Initialsierung von (Klassen)Attributen on Thu, 29 Mar 2012 11:17:41 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Java ist behindert. Hör auf, C++ damit zu vergleichen. Es kotzt mich an.</p>
</blockquote>
<p>Deine Kommentare sind nicht besser als deine Kritik an Java. Werd mal erwachsen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2196542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196542</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 29 Mar 2012 11:17:41 GMT</pubDate></item><item><title><![CDATA[Reply to Initialsierung von (Klassen)Attributen on Thu, 29 Mar 2012 11:19:33 GMT]]></title><description><![CDATA[<p>Na wenn du glaubst, dass das eine Kritik ist, bin ich ja beruhigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2196544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2196544</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 29 Mar 2012 11:19:33 GMT</pubDate></item></channel></rss>