<?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[&amp;lt;vector&amp;gt; als Atribut einer Klasse]]></title><description><![CDATA[<p>Wie kann man auf den Atribut &quot;belege&quot; zugreifen ?</p>
<p>...</p>
<p>class CBelegKonto : public CKonto<br />
{<br />
private:<br />
vector&lt;CBeleg&gt; belege;<br />
public:<br />
virtual void ausgebenKonto(int position, string strKontoName);<br />
void setAlleBelege();<br />
void alleBelege_anzeigen(CBelegKonto alleBelege);</p>
<p>};<br />
...</p>
<p>void alleBelege_anzeigen( CBelegKonto alleBelege)<br />
{<br />
double dSumme=0;</p>
<p>for(size_t i = 0; i &lt; alleBelege.belege.size(); ++i)<br />
{<br />
dSumme += alleBelege.belege[i].anzeigen();<br />
}<br />
cout &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Summe: &quot; &lt;&lt; dSumme &lt;&lt; endl;</p>
<p>system(&quot;pause&quot;);<br />
}</p>
<p>Den Vektor habe ich mit:<br />
...</p>
<p>neueBeleg.setBeleg(buffer);<br />
alleBelege.belege.insert(alleBelege.belege.end(), neueBeleg);<br />
...<br />
befüllt.<br />
Einen Vektor kann man nur als Objekt mit insert befüllen.(Oder ?)</p>
<p>Muss mann da das Schlüsselwort &quot;friend&quot; benutzen ?</p>
<p>Ich wäre sehr dankbar, wenn mir jemand auch erklären würde, wie man hier die<br />
C++ Formatierung einfügen kann.( dass void, while, break usw. farbig erscheinen<br />
usw.)<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/251036/lt-vector-gt-als-atribut-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 17:58:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/251036.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Sep 2009 12:27:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;lt;vector&amp;gt; als Atribut einer Klasse on Mon, 28 Sep 2009 12:27:36 GMT]]></title><description><![CDATA[<p>Wie kann man auf den Atribut &quot;belege&quot; zugreifen ?</p>
<p>...</p>
<p>class CBelegKonto : public CKonto<br />
{<br />
private:<br />
vector&lt;CBeleg&gt; belege;<br />
public:<br />
virtual void ausgebenKonto(int position, string strKontoName);<br />
void setAlleBelege();<br />
void alleBelege_anzeigen(CBelegKonto alleBelege);</p>
<p>};<br />
...</p>
<p>void alleBelege_anzeigen( CBelegKonto alleBelege)<br />
{<br />
double dSumme=0;</p>
<p>for(size_t i = 0; i &lt; alleBelege.belege.size(); ++i)<br />
{<br />
dSumme += alleBelege.belege[i].anzeigen();<br />
}<br />
cout &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Summe: &quot; &lt;&lt; dSumme &lt;&lt; endl;</p>
<p>system(&quot;pause&quot;);<br />
}</p>
<p>Den Vektor habe ich mit:<br />
...</p>
<p>neueBeleg.setBeleg(buffer);<br />
alleBelege.belege.insert(alleBelege.belege.end(), neueBeleg);<br />
...<br />
befüllt.<br />
Einen Vektor kann man nur als Objekt mit insert befüllen.(Oder ?)</p>
<p>Muss mann da das Schlüsselwort &quot;friend&quot; benutzen ?</p>
<p>Ich wäre sehr dankbar, wenn mir jemand auch erklären würde, wie man hier die<br />
C++ Formatierung einfügen kann.( dass void, while, break usw. farbig erscheinen<br />
usw.)<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785370</guid><dc:creator><![CDATA[rosic]]></dc:creator><pubDate>Mon, 28 Sep 2009 12:27:36 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;vector&amp;gt; als Atribut einer Klasse on Mon, 28 Sep 2009 13:28:23 GMT]]></title><description><![CDATA[<p>eigentlich: vector&lt;CBeleg&gt; belege</p>
<p>Ich bitte um Entschuldigung (ist es nicht verständlich ?)<br />
Darf man die Container in der Klasse verwenden ?</p>
<p>Trotzdem danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785415</guid><dc:creator><![CDATA[rosic]]></dc:creator><pubDate>Mon, 28 Sep 2009 13:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;vector&amp;gt; als Atribut einer Klasse on Mon, 28 Sep 2009 13:38:13 GMT]]></title><description><![CDATA[<p>Erst einmal in schön formatiert(Das mach man mit dem C/C++ button unter den Smileys, Einrückung mache ich mal von Hand für dich):</p>
<pre><code class="language-cpp">class CBelegKonto : public CKonto
{
private:
 vector&lt;CBeleg&gt; belege;
public:
 virtual void ausgebenKonto(int position, string strKontoName);
 void setAlleBelege();
 void alleBelege_anzeigen(CBelegKonto alleBelege);
};

...

void alleBelege_anzeigen( CBelegKonto alleBelege)
{
 double dSumme=0;

 for(size_t i = 0; i &lt; alleBelege.belege.size(); ++i)
 {
  dSumme += alleBelege.belege[i].anzeigen();
 }
 cout &lt;&lt; endl;
 cout &lt;&lt; &quot;Summe: &quot; &lt;&lt; dSumme &lt;&lt; endl;

 system(&quot;pause&quot;);
}
</code></pre>
<p>Und jetzt da ich es vernünftig lesen kann, werde ich mal über deine Frage nachdenken und mich später melden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785428</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 28 Sep 2009 13:38:13 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;vector&amp;gt; als Atribut einer Klasse on Mon, 28 Sep 2009 13:50:19 GMT]]></title><description><![CDATA[<p>Dein Problem sind nicht die Container, die verhalten sich wie jede andere Klasse auch. Du solltest dich jedoch nochmal mit Klassenmethoden und wie man diese implementiert beschäftigen. So geht es richtig (ohne große Erklärung, das liest du besser nochmal in einem Buch):</p>
<pre><code class="language-cpp">class CBelegKonto : public CKonto
{
private:
 vector&lt;CBeleg&gt; belege;
public:
 virtual void ausgebenKonto(int position, string strKontoName);
 void setAlleBelege();
 void alleBelege_anzeigen() const;  // Warum soll einer Anzeigememberfunktion ein Objekt der eigenen Klasse übergeben werden? Ist das von dir so gewollt? Außerdem: const correctness
};

...

void CBelegKonto::alleBelege_anzeigen() const [code]// Außerhalb der Klasse musst du kenntlich machen, dass du eine Klassenmethode implementieren willst und keine freie Funktion.
{
 double dSumme=0;

 for(size_t i = 0; i &lt; belege.size(); ++i)   // Da du eine Klassenmethode schreibst wird implizit angenommen, dass du dich auf Klassenvariablen beziehst. Dein Ausdruck war zudem falsch, da alleBelege keine Klasse ist.
 {
  dSumme += belege[i].anzeigen(); // Ebenso hier
 }
 cout &lt;&lt; endl;
 cout &lt;&lt; &quot;Summe: &quot; &lt;&lt; dSumme &lt;&lt; endl;

 system(&quot;pause&quot;);  // siehe den FAQ Thread zum Thema system(&quot;pause&quot;)
}
</code></pre>
<p>Ich hoffe ich habe deine Absichten richtig interpretiert, dass du alleBelege_anzeigen als Memberfunktion und nicht als freie Funktion haben willst. Ich war mir da nämlich nicht so sicher. Wenn du es als freie Funktion haben willst, musst du entweder der Klasse einen getter hinzufügen oder in der Tat friend verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785438</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 28 Sep 2009 13:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;vector&amp;gt; als Atribut einer Klasse on Mon, 28 Sep 2009 14:08:18 GMT]]></title><description><![CDATA[<p>Danke SeppJ<br />
(in meinem C++ habe ich einige Lücken, da werde ich hinarbeiten)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785449</guid><dc:creator><![CDATA[rosic]]></dc:creator><pubDate>Mon, 28 Sep 2009 14:08:18 GMT</pubDate></item></channel></rss>