<?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 eigenem Datentyp erstellen]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich habe eine eigene Klasse 'Gegenstand' (natürlich ohne die '') geschrieben und würde jetzt gerne Objekte davon in einem eigenen Array speichern. Mittlerweile habe ich schon so viel ausprobiert, um das hinzukriegen, aber nichts hat funktioniert. Das Problem, das ich bisher immer hatte war nämlich dieses, dass es keinen Syntaxfehler gab, sondern das Programm ganz normal durchlief, aber das erstellte Objekt einfach nicht im Array gespeichert wurde.</p>
<p>Ich poste jetzt absichtlich keinen Quellcode weil es mir allgemein darum geht, wie ich ein Array eines eigenen Datentyps erstelle (Sollte das abgehakt sein, können wir uns ggf. um das konkrete Problem kümmern). Könnte mir das jemand erläutern?</p>
<p>Grüße,<br />
David</p>
<p>PS: Ja, ich weiß, es gibt auch std::vector&lt;&gt;, aber 1.sind die für meinen Verwendungszweck umständlicher und 2.hat es mit denen bisher genauso wenig geklappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/334167/array-mit-eigenem-datentyp-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 00:57:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/334167.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Aug 2015 20:04:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:04:30 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich habe eine eigene Klasse 'Gegenstand' (natürlich ohne die '') geschrieben und würde jetzt gerne Objekte davon in einem eigenen Array speichern. Mittlerweile habe ich schon so viel ausprobiert, um das hinzukriegen, aber nichts hat funktioniert. Das Problem, das ich bisher immer hatte war nämlich dieses, dass es keinen Syntaxfehler gab, sondern das Programm ganz normal durchlief, aber das erstellte Objekt einfach nicht im Array gespeichert wurde.</p>
<p>Ich poste jetzt absichtlich keinen Quellcode weil es mir allgemein darum geht, wie ich ein Array eines eigenen Datentyps erstelle (Sollte das abgehakt sein, können wir uns ggf. um das konkrete Problem kümmern). Könnte mir das jemand erläutern?</p>
<p>Grüße,<br />
David</p>
<p>PS: Ja, ich weiß, es gibt auch std::vector&lt;&gt;, aber 1.sind die für meinen Verwendungszweck umständlicher und 2.hat es mit denen bisher genauso wenig geklappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465596</guid><dc:creator><![CDATA[Velociraptor45]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:04:30 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:13:34 GMT]]></title><description><![CDATA[<p>Velociraptor45 schrieb:</p>
<blockquote>
<p>Das Problem, das ich bisher immer hatte war nämlich dieses, dass es keinen Syntaxfehler gab, sondern das Programm ganz normal durchlief, aber das erstellte Objekt einfach nicht im Array gespeichert wurde.</p>
</blockquote>
<p>Und wie hast du das festgestellt?</p>
<blockquote>
<p>Ich poste jetzt absichtlich keinen Quellcode</p>
</blockquote>
<p>Solltest du aber, denn wahrscheinlich ist dein Programm falsch, nicht deine Syntax.</p>
<blockquote>
<p>weil es mir allgemein darum geht, wie ich ein Array eines eigenen Datentyps erstelle (Sollte das abgehakt sein, können wir uns ggf. um das konkrete Problem kümmern). Könnte mir das jemand erläutern?</p>
</blockquote>
<pre><code>Name_des_Datentyps name_des_arrays[Anzahl_der_Elemente];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2465597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465597</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:13:34 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:16:16 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/32813">@Velociraptor45</a><br />
<a href="https://en.wikipedia.org/wiki/Object_slicing" rel="nofollow">https://en.wikipedia.org/wiki/Object_slicing</a><br />
Lesen. Wichtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465598</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:16:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:22:38 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>das habe ich 1.dadurch festgestellt, dass der sprite nicht gerendert wurde und Visual Studio 2013 Express bietet eine &quot;Überwachen&quot;-Funktion, bei der man Objekte/Arrays/Vectoren etc überwachen kann.</p>
<pre><code>//Im Header (nur Ausschnitt)

private:
	Gegenstand leiste[8];

//In der cpp

Gegenstand sword1(&quot;images\\Weapons\\Sword.png&quot;, &quot;Schwert&quot;);

Waffenleiste::Waffenleiste(std::string tex)
{
	textur.loadFromFile(tex);
	sprite.setTexture(textur);

	leiste[0] = sword1;
}
</code></pre>
<p>und wenn ich jetzt die Rendermethode so anspreche:</p>
<pre><code>void Waffenleiste::Render(sf::RenderWindow &amp;window)
{
	leiste[0].Render(window);
}
</code></pre>
<p>wird der Sprite nicht gerendert. Wenn ich aber die Rendermethode so anspreche:</p>
<pre><code>void Waffenleiste::Render(sf::RenderWindow &amp;window)
{
	sword1.Render(window);
}
</code></pre>
<p>wird der Sprite gerendet. Was ist mit dem Array los?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465600</guid><dc:creator><![CDATA[Velociraptor45]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:22:38 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:32:57 GMT]]></title><description><![CDATA[<p>Vielleicht geht irgendwas beim Kopieren deiner Klasse schief. Der gezeigte Code ist jedenfalls soweit in Ordnung. Zeig mal aus was deine Gegenstand Klasse besteht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465602</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:35:48 GMT]]></title><description><![CDATA[<pre><code>//Header

#ifndef _GEGENSTAND_H
#define _GEGENSTAND_H

#include &lt;iostream&gt;
#include &lt;SFML/Graphics.hpp&gt;
#include &quot;Zufall.h&quot;

class Gegenstand
{
	public:
		Gegenstand(std::string tex, std::string n);
		Gegenstand();
		void Render(sf::RenderWindow &amp;window);
		void setPosition(float x, float y);
		void shout(); //Das is nur ne kleine Testmethode
		void setTextur(std::string tex);

	protected:
		std::string name;
		Zufall RandNumber;

		sf::Texture textur;
		sf::Sprite sprite;
};

#endif

//cpp

#include &quot;Gegenstand.h&quot;

Gegenstand::Gegenstand()
{

}

Gegenstand::Gegenstand(std::string tex, std::string n)
{
	textur.loadFromFile(tex);
	sprite.setTexture(textur);

	name = n;
}

void Gegenstand::Render(sf::RenderWindow &amp;window)
{
	window.draw(sprite);
}

void Gegenstand::setPosition(float x, float y)
{
	sprite.setPosition(x, y);
}

void Gegenstand::shout()
{
	std::cout &lt;&lt; &quot;Ich wurde angesprochen, mein Name ist: &quot; &lt;&lt; name &lt;&lt; std::endl;
}

void Gegenstand::setTextur(std::string tex)
{
	textur.loadFromFile(tex);
	sprite.setTexture(textur);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2465603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465603</guid><dc:creator><![CDATA[Velociraptor45]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:35:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:43:42 GMT]]></title><description><![CDATA[<p>Sieht in Ordnung aus. Benutzt du auch an allen anderen Relevanten stellen das Objekt aus dem Array? Mir fällt da die <code>setPosition</code> in Auge. Nicht, dass dein Objekt irgendwo an Position (0, 0) festhängt und man es deshalb nicht sieht.</p>
<p>Velociraptor45 schrieb:</p>
<blockquote>
<p>und Visual Studio 2013 Express bietet eine &quot;Überwachen&quot;-Funktion, bei der man Objekte/Arrays/Vectoren etc überwachen kann.</p>
</blockquote>
<p>Und was konntest du dort sehen? Die Objekte im Array haben nicht die erwarteten Werte/Array ist leer oder sowas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465605</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:43:42 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:46:39 GMT]]></title><description><![CDATA[<p>OK, doch keine Vererbung.<br />
Interessant <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/2465606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465606</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:46:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 20:54:00 GMT]]></title><description><![CDATA[<p>Hier mal ein Screenshot von der Überwachungsfunktion nachdem das Array an Position 0 gefüllt wurde. Bei Name müsste zb. statt &quot;&quot; &quot;Schwert&quot; stehen.<br />
<a href="http://prntscr.com/88umso" rel="nofollow">http://prntscr.com/88umso</a></p>
<p>um die <code>setPosition</code> Methode brauchst du dir keinen Kopf machen, denn wie ich gesagt habe: sobald ich das Objekt nicht aus dem Array anspreche, sondern direkt, wird es gerendert.</p>
<p>Und es gibt keine anderen Stellen, an denen ich das Array oder das Objekt verwende. Es gibt nur die Zuweisung im Konstruktor</p>
<pre><code>leiste[0] = sword1;
</code></pre>
<p>und dann den Aufruf in <code>Waffenleiste::Render(sf::RenderWindow &amp;window)</code> .</p>
<pre><code>leiste[0].Render(window);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2465607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465607</guid><dc:creator><![CDATA[Velociraptor45]]></dc:creator><pubDate>Tue, 25 Aug 2015 20:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 21:07:12 GMT]]></title><description><![CDATA[<p>Ich seh da grad nicht, wo du im Konstruktor den Namen zuweist. Ergo bleibt der Name leer...</p>
<p>(Oder ich übersehs grad)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465609</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 25 Aug 2015 21:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 21:09:40 GMT]]></title><description><![CDATA[<p>[code=&quot;cpp&quot;]Gegenstand::Gegenstand(std::string tex, std::string n)<br />
{<br />
textur.loadFromFile(tex);<br />
sprite.setTexture(textur);</p>
<p><strong>name = n;</strong><br />
}[/code]</p>
<p>Aber es is ja nicht nur der Name. Bei Textur und Sprite sind auch alle Werte auf 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465610</guid><dc:creator><![CDATA[Velociraptor45]]></dc:creator><pubDate>Tue, 25 Aug 2015 21:09:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 21:11:38 GMT]]></title><description><![CDATA[<p>Genau, der Code zum anlegen von sword1 wäre dazu noch interessant.</p>
<pre><code>int main() {
	Gegenstand gs[3];
	Gegenstand g(&quot;hallo&quot;, &quot;test&quot;);
	gs[0] = g;
	g.shout();
	gs[0].shout();
}
</code></pre>
<p>Gibt bei mir 2mal den richtigen Namen aus. D.h. irgendwas machst du außerhalb des für uns sichtbaren Codes falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465611</guid><dc:creator><![CDATA[DerBaer]]></dc:creator><pubDate>Tue, 25 Aug 2015 21:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 21:24:48 GMT]]></title><description><![CDATA[<p>Ok, ich hab jetzt mal n bisschen rumprobiert und anscheinend ist das Problem der Ort, an dem ich <code>sword1</code> erstelle (siehe Post um 22:22:38 Uhr).</p>
<p>Allerdings habe ich das Problem jetzt gelöst, indem ich das <code>Gegenstand</code> -Objekt in einer anderen Klasse erstelle und dann über die Methode</p>
<pre><code>void Waffenleiste::addGegenstand(Gegenstand &amp;g, int p)
{
	leiste[p] = g;
}
</code></pre>
<p>in das Array einsortiere. Und damit wäre mein Problem eigentlich gelöst, weil ich später die Objekte, die ich in dem Array speichern will, eh in einer anderen Klasse erstellen werde.<br />
Somit danke an euch <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="😃"
    /> <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>
<p>Grüße,<br />
David</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465612</guid><dc:creator><![CDATA[Velociraptor45]]></dc:creator><pubDate>Tue, 25 Aug 2015 21:24:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 21:47:12 GMT]]></title><description><![CDATA[<p>Wäre aber trotzdem interessant zu wissen woran es letztendlich gelegen hat. Meine neue Vermutung: Ist dein Waffenleiste Objekt eventuell ein globales, wie auch <code>sword1</code> ? Wenn ja dann hast du Probleme mit der Reihenfolger in der die Objekte erstellt werden, also das Waffenleiste Objekt wird erstellt bevor das Gegenstand gültig ist. Falls dem so ist/war: Da hast du einen Grund warum globale Objekte böse sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465613</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Tue, 25 Aug 2015 21:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit eigenem Datentyp erstellen on Tue, 25 Aug 2015 22:21:10 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/32813">@Velociraptor45</a><br />
Deine <code>Gegenstand</code> Klasse braucht übrigens einen Copy-Konstruktor.<br />
Sonst wird das Sprite in der Kopie weiterhin die Textur im Original verwenden. Und das wird wohl Probleme geben, falls das Original mal gelöscht wird (oder für was anderes verwendet).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2465616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2465616</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 25 Aug 2015 22:21:10 GMT</pubDate></item></channel></rss>