<?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[Array mit konstanter Größe]]></title><description><![CDATA[<p>Wieso geht das hier nicht:</p>
<pre><code class="language-cpp">class Foo {
   static const int bufferSize;
   float passedTimeBuffer[bufferSize];

};
const int Foo::bufferSize = 20;
</code></pre>
<p>Mein Compiler meckert mit den Worten: Konstanter Ausdruck erwartet. bufferSize ist doch konstant. <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/192601/array-mit-konstanter-größe</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 13:36:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192601.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Sep 2007 17:48:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array mit konstanter Größe on Sun, 16 Sep 2007 17:48:26 GMT]]></title><description><![CDATA[<p>Wieso geht das hier nicht:</p>
<pre><code class="language-cpp">class Foo {
   static const int bufferSize;
   float passedTimeBuffer[bufferSize];

};
const int Foo::bufferSize = 20;
</code></pre>
<p>Mein Compiler meckert mit den Worten: Konstanter Ausdruck erwartet. bufferSize ist doch konstant. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1366495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366495</guid><dc:creator><![CDATA[Konstant]]></dc:creator><pubDate>Sun, 16 Sep 2007 17:48:26 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit konstanter Größe on Sun, 16 Sep 2007 17:54:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template&lt;typename T&gt;
class foo {
   static const std::size_t size;
   T bar[foo::size];
};
template &lt;typename T&gt;
const std::size_t foo&lt;T&gt;::size = 32;
</code></pre>
<p>das geht nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1366499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366499</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 16 Sep 2007 17:54:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit konstanter Größe on Sun, 16 Sep 2007 18:02:21 GMT]]></title><description><![CDATA[<p>welcher kompiler? welche Version? ...?<br />
Sry, aber Glaskugel ist gerade in Reperatur.</p>
<p>EDIT: Warum nicht so?</p>
<pre><code class="language-cpp">class Foo { 
   static const int BUFFER_SIZE = 21; 
   float passedTimeBuffer[BUFFER_SIZE]; 

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1366501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366501</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sun, 16 Sep 2007 18:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit konstanter Größe on Sun, 16 Sep 2007 18:17:49 GMT]]></title><description><![CDATA[<p>Konstant schrieb:</p>
<blockquote>
<p>Wieso geht das hier nicht:</p>
<pre><code class="language-cpp">class Foo {
   static const int bufferSize;
   float passedTimeBuffer[bufferSize];

};
const int Foo::bufferSize = 20;
</code></pre>
<p>Mein Compiler meckert mit den Worten: Konstanter Ausdruck erwartet. bufferSize ist doch konstant. <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>
</blockquote>
<p>Foo::buffersize ist eine konstante Variable. Das allein genügt aber nicht, damit der Ausdruck<br />
Foo::bufferSize<br />
ein konstanter Ausdruck wird. Zu diesem Zweck muss die konstante Variable auch noch mit einem konstanten Ausdruck initialisiert worden sein (und Literale sind konstante Ausdrücke). Dort, wo buffersize verwendet wird (in der Definition von Foo) hat die Initialisierung aber noch nicht stattgefunden - mithin ist buffersize dort auch kein konstanter Ausdruck. Weil das unschön ist, erlaubt C++ es, statische integrale Memberkonstanten direkt in der Deklaration zu initialisieren. Einer gesonderten Definition (die dann keinen Initialisierer enthalten darf) bedarf es dann nur, wenn das Programm in einer Weise von der Konstante gebrauch macht, die ein lvalue benötigt (etwas exakter: <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#48" rel="nofollow">if it is used in the program...</a>). mithin</p>
<pre><code class="language-cpp">class Foo {
   static const int bufferSize = 20;
   float passedTimeBuffer[bufferSize];

};
// hier nicht notwendig
const int Foo::bufferSize;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1366505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366505</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 16 Sep 2007 18:17:49 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit konstanter Größe on Sun, 16 Sep 2007 18:13:46 GMT]]></title><description><![CDATA[<p>Danke camper. <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/1366506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366506</guid><dc:creator><![CDATA[Konstant]]></dc:creator><pubDate>Sun, 16 Sep 2007 18:13:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit konstanter Größe on Sun, 16 Sep 2007 18:18:29 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">class Foo {
   static const int bufferSize = 20;
   float passedTimeBuffer[bufferSize];

};...
</code></pre>
</blockquote>
<p>Das betrifft zwar die wenigsten: Wenn es nicht klappen sollte (z.B. muss ich mit einem alten Compiler arbeiten), kann man den &quot;Enum-Hack&quot; versuchen (Statt einer Konstante ein Enumwert benutzen).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1366514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366514</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sun, 16 Sep 2007 18:18:29 GMT</pubDate></item></channel></rss>