<?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[Mehrdimensionales Feldarray eines Klassentyps definieren]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>in der h-datei hab ich</p>
<p>BasicRectangle feld[3][2] geschrieben. Ich will ein Feld von Instanzen aus BasicRectangles, einer von mir definierten Klasseerzeugen. Diese Klasse hat neben dem Standardkonstruktor auch einen mit Parametern.</p>
<p>In der cpp datei hab ich dann</p>
<p>for(int k=0;k&lt;=2;k++)<br />
{<br />
for(int j=0;j&lt;=1;j++)<br />
{<br />
feld[k][j]= new BasicRectangle(j,k,this,maxValueInField);<br />
}<br />
}</p>
<p>was hab ich falsch gemacht?</p>
<p>PS: Als Fehler kommen zwei Stück:</p>
<p>Fehler: Fehlender Typspezifizierer- int wird angenommen</p>
<p>und Fehlender Bezeichner ; vor Bezeichner feld</p>
<p>Wobei davor ein Semikolon ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/324016/mehrdimensionales-feldarray-eines-klassentyps-definieren</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 01:40:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324016.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Feb 2014 23:44:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrdimensionales Feldarray eines Klassentyps definieren on Wed, 26 Feb 2014 23:44:00 GMT]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>in der h-datei hab ich</p>
<p>BasicRectangle feld[3][2] geschrieben. Ich will ein Feld von Instanzen aus BasicRectangles, einer von mir definierten Klasseerzeugen. Diese Klasse hat neben dem Standardkonstruktor auch einen mit Parametern.</p>
<p>In der cpp datei hab ich dann</p>
<p>for(int k=0;k&lt;=2;k++)<br />
{<br />
for(int j=0;j&lt;=1;j++)<br />
{<br />
feld[k][j]= new BasicRectangle(j,k,this,maxValueInField);<br />
}<br />
}</p>
<p>was hab ich falsch gemacht?</p>
<p>PS: Als Fehler kommen zwei Stück:</p>
<p>Fehler: Fehlender Typspezifizierer- int wird angenommen</p>
<p>und Fehlender Bezeichner ; vor Bezeichner feld</p>
<p>Wobei davor ein Semikolon ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385464</guid><dc:creator><![CDATA[Hansels]]></dc:creator><pubDate>Wed, 26 Feb 2014 23:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Feldarray eines Klassentyps definieren on Wed, 26 Feb 2014 23:59:06 GMT]]></title><description><![CDATA[<p>Hansels schrieb:</p>
<blockquote>
<p>was hab ich falsch gemacht?</p>
</blockquote>
<p>Sehr viel:<br />
-Definitionen gehören nicht in Header.<br />
-new für statische Felder? Das ist Quatsch. (new an sich ist praktisch immer auch Quatsch)<br />
-Ist der Code etwa außerhalb eines Codeblocks? Soll das eine statische Initialisierung werden? So geht das nicht.<br />
-Globale Variablen sind ebenfalls praktisch immer Quatsch.</p>
<p>Beschreib mal, was du warum erreichen möchtest. Dann kann man dir eine gute Lösung vorschlagen. Eine Verbesserung deines jetzigen Vorhabens dürfte wohl ziemlich aussichtslos sein, da es sowohl viele technische Fehler enthält, als auch an sich zweifelhaft ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385468</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 26 Feb 2014 23:59:06 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Feldarray eines Klassentyps definieren on Thu, 27 Feb 2014 09:26:44 GMT]]></title><description><![CDATA[<p>Guten Morgen,<br />
ich will ein mehrdimensionales Feld von Rechtecken, wobei ich die Rechtecke als Elementstruktur in einer anderen Klasse definiert habe.</p>
<p>ich dachte zumindest arrays mit feldgröße müssen in der header definiert werden, wenn man sie in der klasse global gebrauchen will.</p>
<p>Was ist gegen globale Variablen auszusetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385505</guid><dc:creator><![CDATA[Hansels]]></dc:creator><pubDate>Thu, 27 Feb 2014 09:26:44 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Feldarray eines Klassentyps definieren on Thu, 27 Feb 2014 09:33:14 GMT]]></title><description><![CDATA[<p>Ich bau mir sozusagen eine Heatmap selbst. Neben den Zeicheneigenschaften hat dann ein Rechteck unterschiedliche Zusatzeingeschaften.<br />
Mittels einer selbstgemachten Heatmapklasse greife ich auf die Rechteckklasse, aus der ich dann (feldabhängig) in einem mehrdimensionalen Array eine Anzahl an Rechteckobjekten anlegen will, die unterschiedliche startkoordinaten haben und andere attribute</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385506</guid><dc:creator><![CDATA[Hansels]]></dc:creator><pubDate>Thu, 27 Feb 2014 09:33:14 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Feldarray eines Klassentyps definieren on Thu, 27 Feb 2014 14:41:06 GMT]]></title><description><![CDATA[<p>Hansels schrieb:</p>
<blockquote>
<p>ich dachte zumindest arrays mit feldgröße müssen in der header definiert werden, wenn man sie in der klasse global gebrauchen will.</p>
</blockquote>
<p>Du definierst nie etwas im Header (außer inline/template). Wie soll das gehen? Wenn du den Header 2 Mal einbindest, hast du 2 Mal die Definition im Programm. -&gt; ODR verletzt.</p>
<blockquote>
<p>Was ist gegen globale Variablen auszusetzen?</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Wird das nicht in deinem Lehrbuch erklärt? Sie sind sowohl eine große Quelle von Fehlern, auch sind diese Fehler sehr schwer zu debuggen. <a href="http://c2.com/cgi/wiki?GlobalVariablesAreBad" rel="nofollow">Hier sind ein paar mehr Details</a>. Im Umkehrschluss gilt, dass man den Gültigkeitsbereich von Variablen stets so klein wie möglich halten sollte. Also</p>
<pre><code>int endergebnis = 0;
for (int i = 0; i &lt; 10; ++i)
{
  int zwischenergebnis = komplizierte_rechnung1(i);
  endergebnis = komplizierte_rechnung2(zwischenergebnis, i);
}
</code></pre>
<p>statt</p>
<pre><code>int endergebnis = 0;
int zwischenergebnis;
for (int i = 0; i &lt; 10; ++i)
{
  zwischenergebnis = komplizierte_rechnung1(i);
  endergebnis = komplizierte_rechnung2(zwischenergebnis, i);
}
</code></pre>
<p>oder gar</p>
<pre><code>int endergebnis = 0;
int zwischenergebnis;
int i;
for (i = 0; i &lt; 10; ++i)
{
  zwischenergebnis = komplizierte_rechnung1(i);
  endergebnis = komplizierte_rechnung2(zwischenergebnis, i);
}
</code></pre>
<p>Oftmals sogar:</p>
<pre><code>Daten daten;
{
  ifstream file(&quot;dateiname&quot;)
  file &gt;&gt; daten;
}
</code></pre>
<p>statt</p>
<pre><code>Daten daten;
ifstream file(&quot;dateiname&quot;)
file &gt;&gt; daten;
</code></pre>
<p>Hansels schrieb:</p>
<blockquote>
<p>Ich bau mir sozusagen eine Heatmap selbst. Neben den Zeicheneigenschaften hat dann ein Rechteck unterschiedliche Zusatzeingeschaften.<br />
Mittels einer selbstgemachten Heatmapklasse greife ich auf die Rechteckklasse, aus der ich dann (feldabhängig) in einem mehrdimensionalen Array eine Anzahl an Rechteckobjekten anlegen will, die unterschiedliche startkoordinaten haben und andere attribute</p>
</blockquote>
<p>Ich sehe hier gar keinen Zusammenhang zu deinem Versuch. Hier kommt sogar noch ein weiteres Problem globaler Variablen hinzu, dass gar nicht erwähnt wurde, weil die Benutzung einer globalen Variable in dem Fall gar keinen Sinn hat: Du könntest nur ein einziges Objekt haben! Das ist doch sicher keine Absicht?</p>
<p>Warum nicht so?</p>
<pre><code>class Rectangle { /* ... */ };

class Heatmap
{
  Rectangle rectangles[3][2];
};
</code></pre>
<p>oder</p>
<pre><code>class Rectangle { /* ... */ };

class Heatmap
{
  std::array&lt;std::array&lt;Rectangle, 2&gt;, 3&gt; rectangles;
};
</code></pre>
<p>oder</p>
<pre><code>class Rectangle { /* ... */ };

class Heatmap
{
  dynamische_2D_array_klasse_die_man_sich_schnell_und_leicht_selber_schreiben_kann&lt;Rectangle&gt; rectangles;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2385584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385584</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 27 Feb 2014 14:41:06 GMT</pubDate></item></channel></rss>