<?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[Vektor als Klassenobjekt]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Funktion schreiben, die Buttons lädt. Dabei soll der Vector ein push_back erzeugen und mit dem neu erzeugten Platz arbeiten und ihn initialisieren. Als push_back soll der Vector automatisch ein neues Klassenobjekt erzeugen.</p>
<p>Mein Code ist in etwa so:</p>
<p>Klasse Button:</p>
<pre><code class="language-cpp">class Button {
protected:

	//Ein paar private Variablen und Speicher
public:

	Button(std::string); //Konstruktor mit name als Argument um Button zu identifizieren	

        //weite funktionen um button einzustellen

};
</code></pre>
<p>main:</p>
<pre><code class="language-cpp">//Definition von class Button (s.o.)

vButton.push_back(dd::Button(&quot;recipelist_bg&quot;));
	vButton[vButton.size() - 1].SetTexture(&quot;Data/textures/recipelist_bg.tga&quot;);
	vButton[vButton.size() - 1].SetPosition(5, 47);

	vButton.push_back(dd::Button(&quot;recipelist_selected&quot;));
	vButton[vButton.size() - 1].SetTexture(&quot;Data/textures/recipelist_selected.tga&quot;);
	vButton[vButton.size() - 1].SetPosition(5, 47);
</code></pre>
<p>Wenn ich nun die beiden Buttons zeichnen will, erscheint der erste weiß (keine textur) und der zweite wird normal gezeichnet. mir ist aufgefallen, dass immer der zuletzt initialisierte button funktioniert. die objekte überschreiben sich also irgendwie...</p>
<p>Wenn ich die buttons mit einem manuell erzeugtem objekt initialisiere, also:</p>
<pre><code class="language-cpp">dd::Button b1;

	b1.SetTexture(&quot;Data/textures/recipelist_bg.tga&quot;);
	b1.SetPosition(5, 47);	
        vButton.push_back(b1);

dd::Button b2;

b2.&quot;
b2.&quot;
 vButton.push_back(b2);

...
</code></pre>
<p>dann geht es, aber ich hätte gerne, dass er die objekte selbst erzeugt.</p>
<p>Danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305845/vektor-als-klassenobjekt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 12:25:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305845.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Jul 2012 10:18:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vektor als Klassenobjekt on Tue, 10 Jul 2012 14:22:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Funktion schreiben, die Buttons lädt. Dabei soll der Vector ein push_back erzeugen und mit dem neu erzeugten Platz arbeiten und ihn initialisieren. Als push_back soll der Vector automatisch ein neues Klassenobjekt erzeugen.</p>
<p>Mein Code ist in etwa so:</p>
<p>Klasse Button:</p>
<pre><code class="language-cpp">class Button {
protected:

	//Ein paar private Variablen und Speicher
public:

	Button(std::string); //Konstruktor mit name als Argument um Button zu identifizieren	

        //weite funktionen um button einzustellen

};
</code></pre>
<p>main:</p>
<pre><code class="language-cpp">//Definition von class Button (s.o.)

vButton.push_back(dd::Button(&quot;recipelist_bg&quot;));
	vButton[vButton.size() - 1].SetTexture(&quot;Data/textures/recipelist_bg.tga&quot;);
	vButton[vButton.size() - 1].SetPosition(5, 47);

	vButton.push_back(dd::Button(&quot;recipelist_selected&quot;));
	vButton[vButton.size() - 1].SetTexture(&quot;Data/textures/recipelist_selected.tga&quot;);
	vButton[vButton.size() - 1].SetPosition(5, 47);
</code></pre>
<p>Wenn ich nun die beiden Buttons zeichnen will, erscheint der erste weiß (keine textur) und der zweite wird normal gezeichnet. mir ist aufgefallen, dass immer der zuletzt initialisierte button funktioniert. die objekte überschreiben sich also irgendwie...</p>
<p>Wenn ich die buttons mit einem manuell erzeugtem objekt initialisiere, also:</p>
<pre><code class="language-cpp">dd::Button b1;

	b1.SetTexture(&quot;Data/textures/recipelist_bg.tga&quot;);
	b1.SetPosition(5, 47);	
        vButton.push_back(b1);

dd::Button b2;

b2.&quot;
b2.&quot;
 vButton.push_back(b2);

...
</code></pre>
<p>dann geht es, aber ich hätte gerne, dass er die objekte selbst erzeugt.</p>
<p>Danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231593</guid><dc:creator><![CDATA[kralo9]]></dc:creator><pubDate>Tue, 10 Jul 2012 14:22:20 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Klassenobjekt on Tue, 10 Jul 2012 12:51:15 GMT]]></title><description><![CDATA[<p>Erstelle bitte ein meinimales, aber vollständiges Minimalbeispiel zu deinem Problem. Als erstes bietet es sich an, alles was nicht Standard-C++ ist, rauszuwerfen und durch einfache Textausgaben zu ersetzen. Dann kürzt du noch sämtliche nicht benutzten Funktionen und versuchst alles möglichst stark zu kürzen. Zwischendurch testest du immer wieder, ob das Problem noch existiert. Wenn es verschwindet, dann solltest du dir die zuletzt gekürzten Stellen genauer angucken.</p>
<p>Dein bisher gezeigter Code kann höchstens für ein paar leichte Verdächtigungen herhalten und für Allgemeinfloskeln wie &quot;Du machst was falsch&quot;.</p>
<p>Siehe auch den dritten Link in meiner Signatur.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231617</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 10 Jul 2012 12:51:15 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Klassenobjekt on Tue, 10 Jul 2012 14:23:22 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Erstelle bitte ein meinimales, aber vollständiges Minimalbeispiel zu deinem Problem. Als erstes bietet es sich an, alles was nicht Standard-C++ ist, rauszuwerfen und durch einfache Textausgaben zu ersetzen. Dann kürzt du noch sämtliche nicht benutzten Funktionen und versuchst alles möglichst stark zu kürzen. Zwischendurch testest du immer wieder, ob das Problem noch existiert. Wenn es verschwindet, dann solltest du dir die zuletzt gekürzten Stellen genauer angucken.</p>
<p>Dein bisher gezeigter Code kann höchstens für ein paar leichte Verdächtigungen herhalten und für Allgemeinfloskeln wie &quot;Du machst was falsch&quot;.</p>
<p>Siehe auch den dritten Link in meiner Signatur.</p>
</blockquote>
<p>besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231632</guid><dc:creator><![CDATA[kralo9]]></dc:creator><pubDate>Tue, 10 Jul 2012 14:23:22 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Klassenobjekt on Tue, 10 Jul 2012 14:29:28 GMT]]></title><description><![CDATA[<p>kralo9 schrieb:</p>
<blockquote>
<p>besser?</p>
</blockquote>
<p>Nein, überhaupt nicht. Du hast zwar den hier gezeigten Code gekürzt, der Code ist aber immer noch unvollständig und ich habe gehörige Zweifel, ob du den nun gezeigten Code überhaupt bei dir ausprobiert hast, ob er den Fehler noch zeigt.</p>
<p>Vollkommen unbrauchbar, ich habe fast den Eindruck, du hast mich absichtlich falsch verstanden. Du erwartest hier freiwillige, kompetente Hilfe, bist aber nicht bereit, mal 10-20 Minuten zu investieren, um dein Problem halbwegs nachvollziehbar zu schildern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231636</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 10 Jul 2012 14:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Klassenobjekt on Tue, 10 Jul 2012 14:29:17 GMT]]></title><description><![CDATA[<p>kralo9 schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Erstelle bitte ein meinimales, aber vollständiges Minimalbeispiel zu deinem Problem...</p>
</blockquote>
<p>besser?</p>
</blockquote>
<p>Nein, lies bitte nochmal die Antwort von SeppJ. Weder ist der Code kompilierbar, noch enthält er auch nur das nötigste (Die Implementierung von Button::SetTexture und Button::SetPosition fehlen z.B. ganz...).</p>
<p>Zudem solltest du dir vector::back mal anschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231637</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 10 Jul 2012 14:29:17 GMT</pubDate></item></channel></rss>