<?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[Vector speichert Objekte einer Klasse]]></title><description><![CDATA[<p>Hi,</p>
<p>ich frage mal nach weil die allwissende Müllhalde nichts ausgibt:<br />
Ich habe eine Klasse die einen Vector/Liste/.... besitzt. Ich erstelle mit einer 2. Klasse Objekte und möchte diese in der 1. Klasse speichern.</p>
<pre><code class="language-cpp">class B
{
// ...
};

class A
{
public:
void add()
{
//irgendwie dann in den vektor schreiben 
}
private:
std::vector&lt;B&gt; liste;
};

int main()
{
 B b1;
 A a1;
 a1.add(&amp;b1);
}
</code></pre>
<p>Ich bekomme im Moment die Adresse von b1 nicht in das add(). Vielleicht hat jemand einen Ansatz für mich? Danke <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/topic/247540/vector-speichert-objekte-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 12:40:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247540.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Aug 2009 12:24:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 12:24:27 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich frage mal nach weil die allwissende Müllhalde nichts ausgibt:<br />
Ich habe eine Klasse die einen Vector/Liste/.... besitzt. Ich erstelle mit einer 2. Klasse Objekte und möchte diese in der 1. Klasse speichern.</p>
<pre><code class="language-cpp">class B
{
// ...
};

class A
{
public:
void add()
{
//irgendwie dann in den vektor schreiben 
}
private:
std::vector&lt;B&gt; liste;
};

int main()
{
 B b1;
 A a1;
 a1.add(&amp;b1);
}
</code></pre>
<p>Ich bekomme im Moment die Adresse von b1 nicht in das add(). Vielleicht hat jemand einen Ansatz für mich? Danke <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/1759431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759431</guid><dc:creator><![CDATA[miro]]></dc:creator><pubDate>Wed, 12 Aug 2009 12:24:27 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 12:33:02 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class B
{
// ...
};

class A
{
public:
void add(B* b)
{
liste.push_back( b );
//irgendwie dann in den vektor schreiben
}
private:
std::vector&lt;B*&gt; liste;
};

int main()
{
 B b1;
 A a1;
 a1.add(&amp;b1);
}
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759438</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 12 Aug 2009 12:33:02 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 13:10:17 GMT]]></title><description><![CDATA[<p>Oder willst du die Objekte direkt speichern (also ohne Zeiger), dann einfach das &amp; entfernen:</p>
<pre><code class="language-cpp">class B 
{ 
// ... 
}; 

class A 
{ 
public: 
  void add(const B&amp; b) 
  { 
    liste.push_back( b );
  } 
private: 
  std::vector&lt;B&gt; liste; 
}; 

int main() 
{ 
  B b1; 
  A a1; 
  a1.add(b1); 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1759468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759468</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 12 Aug 2009 13:10:17 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 13:37:40 GMT]]></title><description><![CDATA[<p>Danke erstmal ... soweit funktioniert es auch.</p>
<p>Ich will es nur noch so gestalten, dass abgeleitete Klassen von A (z.B. eine A1,A2,A3,...) auf diesen Vektor zugreifen können ... z.B. soll A1 dann in einer Funktion liste.size() ausgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759498</guid><dc:creator><![CDATA[miro]]></dc:creator><pubDate>Wed, 12 Aug 2009 13:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 13:51:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A 
{ 
public: 
  void add(const B&amp; b) 
  { 
    liste.push_back( b );
  } 
protected: 
  std::vector&lt;B&gt; liste; 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1759507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759507</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 12 Aug 2009 13:51:12 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 14:37:15 GMT]]></title><description><![CDATA[<p>Zugriff auf die Liste geht aber dann soll A1,A2,A3 den selben Wert wie A ausgeben.</p>
<p>In meiner Ausgabe sind sie alle 0 obwohl ich vorher für A ein addOutput gesetzt habe.<br />
A sagt liste.size 1<br />
A1,A2,A3 sagen liste hat size 0</p>
<p>Hm...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759540</guid><dc:creator><![CDATA[miro]]></dc:creator><pubDate>Wed, 12 Aug 2009 14:37:15 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 14:54:17 GMT]]></title><description><![CDATA[<p>Vielleicht weil Du unterschiedliche Objekte hast?!</p>
<p>Vielleicht wäre auch etwas mehr Code hilfreich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759560</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 12 Aug 2009 14:54:17 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 15:06:03 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A
{
	protected:
		std::vector&lt;Hw&gt; liste; //Klasse Hw ist extern deklariert aber tut im Moment nichts
	public:		
		void addOutput(const Hw&amp; a);		
		void funktion();
};

void A::addOutput(const Hw&amp; a) //Liste füllen
{
	liste.push_back(a);	 
}

void A::funktion()  // Listeninhalt zählen
{
	cout&lt;&lt;&quot;SizeOUT:&quot;&lt;&lt;liste.size()&lt;&lt;endl;

}

class MA1:public A
{
	public:
		void funktion();
};

void MA1::funktion()
{
	cout&lt;&lt;&quot;SizeOUT:&quot;&lt;&lt;liste.size()&lt;&lt;endl; // Hier sollte die gleiche Size ausgegeben werden wie in der Basisklasse
}

class MA2:public A
{
	public:
		void funktion();
};

void MA2::funktion()
{
	cout&lt;&lt;&quot;SizeOUT:&quot;&lt;&lt;liste.size()&lt;&lt;endl; // Hier sollte die gleiche Size ausgegeben werden wie in der Basisklasse

}
int main()
{
	A a1;
	MA1 ma1;
	MA2 ma2;

	Hw m1;	//0
	Hw m2;	//1

	a1.addOutput(m1); //soll für MA1 und MA2 auch gelten
	a1.addOutput(m2);

	a1.funktion();
	ma1.funktion();
	ma2.funktion();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1759574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759574</guid><dc:creator><![CDATA[miro]]></dc:creator><pubDate>Wed, 12 Aug 2009 15:06:03 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 15:20:18 GMT]]></title><description><![CDATA[<p>Weil du nur die Hw-Objekte dem a1 hinzufügst. liste ist kein static member, und deshalb wird er nur in dem Kontext eines einzelnen Objektes verändert.<br />
Für jedes A-Objekt (dazu zählen auch abgeleitete Klassen) gibt es ein eigenes liste-Objekt.<br />
Les dir doch einfach nochmal die Kapitel zu Objektorientierung in deinem Buch durch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759581</guid><dc:creator><![CDATA[Leidender Wärter]]></dc:creator><pubDate>Wed, 12 Aug 2009 15:20:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 18:25:18 GMT]]></title><description><![CDATA[<p>Habe ich nur da gehts bisher in keinem Buch konkret auf so eine Anforderung ... ich hätte drauf getippt irgendwie mit this zu Tricksen aber danke für den Tipp mit static</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759690</guid><dc:creator><![CDATA[miro]]></dc:creator><pubDate>Wed, 12 Aug 2009 18:25:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 19:28:36 GMT]]></title><description><![CDATA[<p>Irgendwie mit this tricksen?! OMG, du solltest den Tipp mit den Grundlagen vorher noch beherzign, damit Du weisst, was Du da (mit static) überhaupt tust <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>
<p>Um mal bei den albernen Beispielen zu bleiben: Nehmen wir mal an die Klasse A beschreibt ein Wirbeltier. MA1 wäre dann z.B. ein Säugetier (ist ein Wirbeltier). Dann legst Du ein konkretes Wirbeltier a1 (nennen wir es Waldi) und ein Säugetier ma1 (nennen wir es Hasso) an. Wenn Du nun dem Wirbeltier Waldi etwas zu essen gibst, soll es gleichzeitig im Magen von Hasso landen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759719</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 12 Aug 2009 19:28:36 GMT</pubDate></item><item><title><![CDATA[Reply to Vector speichert Objekte einer Klasse on Wed, 12 Aug 2009 20:08:18 GMT]]></title><description><![CDATA[<p>Ok, ich nehme mal ein passendes Beispiel ... du bist in der Matrix, wir alle gehören zur Oberklasse Matrix, also du, die Mitglieder hier und ich. Die Matrix hat jetzt aber eine bestimmte Anzahl von Türen, Telefonen, etc um rein und rauszukommen ... so, damit man jetzt nicht jedem einzelnen sagen muss wo die Türen und Telefone sind hauen wir ein dickes static Plakat an die Wand. Ein Mutex sorgt dann noch dafür das wir nicht alle gemeinsam durch eine Tür latschen.</p>
<p>Das wäre grob mein Thema <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="😉"
    /> Sry, ein passenderes Beispiel habe ich nicht gefunden zur späten Stunde ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759745</guid><dc:creator><![CDATA[miro]]></dc:creator><pubDate>Wed, 12 Aug 2009 20:08:18 GMT</pubDate></item></channel></rss>