<?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[Arrays von Objekten]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgenden Code:</p>
<pre><code class="language-cpp">...
Punkt* a;
a=new Punkt[anzahlecken];
...
a[i].setpositionX=x;
</code></pre>
<p>Leider kann ich so nicht auf die Objekte im Array zugreifen. Wie funktioniert das richtig?</p>
<p>Dann würde ich noch gerne wissen, wie man beim erzeugen der Objekte in einem Array einen Parameter angibt, der für jedes Objekt anders ist. Oder ist sowas nicht möglich, da alle Objekte im Array gleichzeitig erzeugt werden müssen?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/202322/arrays-von-objekten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 15:45:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202322.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jan 2008 22:54:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arrays von Objekten on Wed, 09 Jan 2008 22:54:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgenden Code:</p>
<pre><code class="language-cpp">...
Punkt* a;
a=new Punkt[anzahlecken];
...
a[i].setpositionX=x;
</code></pre>
<p>Leider kann ich so nicht auf die Objekte im Array zugreifen. Wie funktioniert das richtig?</p>
<p>Dann würde ich noch gerne wissen, wie man beim erzeugen der Objekte in einem Array einen Parameter angibt, der für jedes Objekt anders ist. Oder ist sowas nicht möglich, da alle Objekte im Array gleichzeitig erzeugt werden müssen?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434020</guid><dc:creator><![CDATA[Sebi84]]></dc:creator><pubDate>Wed, 09 Jan 2008 22:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Wed, 09 Jan 2008 23:04:41 GMT]]></title><description><![CDATA[<p>Ich versteh' Dich zwar nicht, aber ich sag's Dir trotzdem <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>
<pre><code class="language-cpp">class foo_t { // Dein &quot;Objekt&quot;

    public:

        int bar;
};

int main( ) {

    foo_t array[ 100 ]; // 100 Instanzen des Typs foo_t

    array[ 0 ].bar = 10;
}
</code></pre>
<p>So, what's the problem, man!?</p>
<p>BTW: Warum quälst Du dich mit dynamischer Speicherverwaltung ( <code>new[]</code> )?</p>
<p>Wenn Du's wirklich brauchst, dann nimm einen <code>std::vector</code> :</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

class foo_t {

    public:

        int bar;
};

int main( ) {

    std::vector&lt; bar_t &gt; array; // Ein Container für bar_t-Elemente

    array.push_back( foo_t( ) ); // Hängt ein neues foo_t an deinen Vector an.
                                 // Dein Objekt muss kopierbar sein.
}
</code></pre>
<p>greetz, Swordfish</p>
<p>//edit: apropos: std:: <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/1434023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434023</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 09 Jan 2008 23:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Wed, 09 Jan 2008 23:24:09 GMT]]></title><description><![CDATA[<p>Jagut, aber was mache ich, wenn ich ein pointer auf ein Array von Objekten habe und nun auf einzelne Elemente des Arrays zugreifen möchte?</p>
<p>Z.B. Klasse Punkt</p>
<pre><code class="language-cpp">Punkt* a;
a = new Punkt[10];
a[1].eineMethodeVonPunkt(); //hier Fehler
</code></pre>
<p>Wie greife ich auf die Objekte in der Liste zu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434032</guid><dc:creator><![CDATA[Sebi84]]></dc:creator><pubDate>Wed, 09 Jan 2008 23:24:09 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Thu, 10 Jan 2008 00:48:53 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;Punkt&gt; vec;
vec.push_back(Punkt());
vec[0].setX(20);
</code></pre>
<p>So kannst du direkt auf ein Element zugreifen bei std::vector. Ist viel angenehmer zu verwenden.</p>
<p>Ansonsten kann ich bei dir so keinen Fehler entdecken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434055</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Thu, 10 Jan 2008 00:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Thu, 10 Jan 2008 01:17:28 GMT]]></title><description><![CDATA[<p>ich kann auch keinen fehler bei deinem code erkennen...mir ist nur aufgefallen das du beim array-index 1 anfängst. also falls das beabsichtigt ist dann ist ja ok aber ich bin mir nicht sicher ob du vll doch auf das 1. objekt des arrays zugreifen willst...also mit dem klammerindex 0...vll liegt dein &quot;fehler&quot; ja daran...ansonsten stimmt der code</p>
<p>mfg namreb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434062</guid><dc:creator><![CDATA[BOSS]]></dc:creator><pubDate>Thu, 10 Jan 2008 01:17:28 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Thu, 10 Jan 2008 01:24:05 GMT]]></title><description><![CDATA[<p>Sebi84 schrieb:</p>
<blockquote>
<p>Jagut, aber was mache ich, wenn ich ein pointer auf ein Array von Objekten habe und nun auf einzelne Elemente des Arrays zugreifen möchte?</p>
<p>Z.B. Klasse Punkt</p>
<pre><code class="language-cpp">Punkt *a;
a = new Punkt[10];
a[1].eineMethodeVonPunkt(); //hier Fehler
</code></pre>
<p>Wie greife ich auf die Objekte in der Liste zu?</p>
</blockquote>
<p>Genauso wie du's tust <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="😉"
    /><br />
Nicht vergessen das dynamisch alloziierte Array zu löschen ( <code>delete[]</code> )!</p>
<p>greetz, Swordfish</p>
<p>BTW: Bist du sicher, dass du den Speicher dynamisch verwallten willst/musst!? Und wenn ja - auf die Gefahr hin, mich zu wiederholen - nimm einen <code>std::vector</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434063</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 10 Jan 2008 01:24:05 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Thu, 10 Jan 2008 14:30:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;typename T=unsigned long&gt;
class point
{
    typedef std::pair&lt;T, T&gt; point_t;
    point_t m_data;

public:
    point(T const&amp; x, T const&amp; y) 
        : m_data(std::make_pair(x, y))
    {}

public:
    point_t const&amp; get() const { return m_data; }
    void set(point_t const&amp; data) { m_data = data; }

    point&amp; operator+=(point const&amp; rhs)
    { m_data.first += rhs.m_data.first; m_data.second += rhs.m_data.second; return *this; }
};

// Beispiele:
{
    // Zeiger (new[]/delete[]
    const std::size_t size(2);
    point* ptr_array[size](10UL, 10UL);
    ptr_array[0] += ptr_array[1];
    // ptr_array[0] =&gt; '(20, 20)'
    delete [] ptr_array;
} // Scope schließen
{
    // STL Container Class (std::vector)
    std::vector&lt;point&gt; data(10, point(10UL, 10UL));
    data[0] += data.at(1); // at mit range check, operator[] ohne!
    // ptr_array[0] =&gt; '(20, 20)'
}// Scope schließen (Desturktor von data wird aufgerufen)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1434316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434316</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 10 Jan 2008 14:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Thu, 10 Jan 2008 14:39:30 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>Sebi84 schrieb:</p>
<blockquote>
<p>...auf einzelne Elemente des Arrays zugreifen möchte?</p>
<p>Z.B. Klasse Punkt</p>
<pre><code class="language-cpp">Punkt *a;
a = new Punkt[10];
a[1].eineMethodeVonPunkt(); //hier Fehler
</code></pre>
<p>Wie greife ich auf die Objekte in der Liste zu?</p>
</blockquote>
<p>Genauso wie du's tust <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="😉"
    /><br />
Nicht vergessen das dynamisch alloziierte Array zu löschen ( <code>delete[]</code> )!</p>
</blockquote>
<p>Vielleicht ein Mißverständnis meinerseits da ich eigentlich kaum noch mit Arrays (und grade nicht mit Arryas von Zeigern) arbeite. Aber ich bin der Meinung wenn man auf einen Zeiger zugreift sollte man statt den . -&gt; schreiben...</p>
<pre><code class="language-cpp">Punkt *a;
a = new Punkt[10];
a[1]-&gt;eineMethodeVonPunkt();
delete[] a;
</code></pre>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434324</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 10 Jan 2008 14:39:30 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Thu, 10 Jan 2008 14:44:19 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Vielleicht ein Mißverständnis meinerseits da ich eigentlich kaum noch mit Arrays (und grade nicht mit Arryas von Zeigern) arbeite. Aber ich bin der Meinung wenn man auf einen Zeiger zugreift sollte man statt den . -&gt; schreiben...</p>
<pre><code class="language-cpp">Punkt *a;
a = new Punkt[10];
a[1]-&gt;eineMethodeVonPunkt();
delete[] a;
</code></pre>
<p>cu André</p>
</blockquote>
<p>Mußt du (in diesem Fall) nicht - du brauchst einen Zeiger nur einmal dereferenzieren - und sowohl der Index-Zugriff [] als auch der Pfeil-Operator -&gt; beinhalten eine Dereferenzierung (davon ist also eine überflüssig).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434329</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 10 Jan 2008 14:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays von Objekten on Thu, 10 Jan 2008 15:18:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Punkt* ptr_array = new Punkt[10];
ptr_array-&gt;foo(); 
ptr_array[0].foo();
</code></pre>
<p><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="😉"
    /> Die beiden Aufrufe sind gleich</p>
<pre><code class="language-cpp">ptr_array[1]-&gt;
</code></pre>
<p>geht nur bei Punkt** <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/1434376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434376</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 10 Jan 2008 15:18:43 GMT</pubDate></item></channel></rss>