<?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[private static variablen einer klasse außerhalb der klasse initialisieren?]]></title><description><![CDATA[<p>hi,<br />
ich hab hier ein kleines verständnisproblem. vielleicht kann mir da jmd weiterhelfen?!<br />
und zwar hab ich eine klasse sparkonto, in der habe ich (private) variablen eingefügt.<br />
die variable zins ist static, da sie für alle sparkonten nur 1x existieren soll.<br />
außerdem kann ich sie nur über die public methode(gleiche klasse) setZins ändern.<br />
Nun müsste ich doch aber auch die variable zins initialisieren. da sie static ist, müsste ich sie doch eigentlich außerhalb der klassendefinition initialisieren?!<br />
darauf kann ich aber nicht zugreifen, weil ich sie private gemacht hab.<br />
(ich muss sie erst einmal mit 0 vorbelegen)<br />
hier der code(ich habe 3 verschieden dateien: test.cpp,zins.cpp,zins.h):<br />
zins.h</p>
<pre><code>#include &lt;iostream&gt;
class Sparkonto
{
      private:
              double betrag;
              static double zins;   //initalisierung außerhalb klasse &amp; main?!
                                    //für alle objekte 1x vorhanden
      public:
              //Sparkonto();
              Sparkonto(void);
              static void setZins(double a);           //statische funktionen können                                                                                     
                                                       //können nur mit static
                                                       //variablen zusammenarbeiten?!
              void verzinsen();                        
              void zeigeBetrag();
              void einzahlen(double b);
};
</code></pre>
<p>zins.cpp</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;sparkonto.h&quot;

using namespace std;

Sparkonto::Sparkonto()
{
    betrag = 0;
}
void Sparkonto::setZins(double a)
{
    zins = a;
}
void Sparkonto::einzahlen(double b)
{
     betrag += b;
}
void Sparkonto::verzinsen()
{
     betrag += betrag * zins /100.0;
}
void Sparkonto::zeigeBetrag()
{
     cout &lt;&lt; &quot;Betrag: &quot; &lt;&lt; betrag &lt;&lt;endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/202519/private-static-variablen-einer-klasse-außerhalb-der-klasse-initialisieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 18:06:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202519.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Jan 2008 13:15:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to private static variablen einer klasse außerhalb der klasse initialisieren? on Sat, 12 Jan 2008 13:15:00 GMT]]></title><description><![CDATA[<p>hi,<br />
ich hab hier ein kleines verständnisproblem. vielleicht kann mir da jmd weiterhelfen?!<br />
und zwar hab ich eine klasse sparkonto, in der habe ich (private) variablen eingefügt.<br />
die variable zins ist static, da sie für alle sparkonten nur 1x existieren soll.<br />
außerdem kann ich sie nur über die public methode(gleiche klasse) setZins ändern.<br />
Nun müsste ich doch aber auch die variable zins initialisieren. da sie static ist, müsste ich sie doch eigentlich außerhalb der klassendefinition initialisieren?!<br />
darauf kann ich aber nicht zugreifen, weil ich sie private gemacht hab.<br />
(ich muss sie erst einmal mit 0 vorbelegen)<br />
hier der code(ich habe 3 verschieden dateien: test.cpp,zins.cpp,zins.h):<br />
zins.h</p>
<pre><code>#include &lt;iostream&gt;
class Sparkonto
{
      private:
              double betrag;
              static double zins;   //initalisierung außerhalb klasse &amp; main?!
                                    //für alle objekte 1x vorhanden
      public:
              //Sparkonto();
              Sparkonto(void);
              static void setZins(double a);           //statische funktionen können                                                                                     
                                                       //können nur mit static
                                                       //variablen zusammenarbeiten?!
              void verzinsen();                        
              void zeigeBetrag();
              void einzahlen(double b);
};
</code></pre>
<p>zins.cpp</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;sparkonto.h&quot;

using namespace std;

Sparkonto::Sparkonto()
{
    betrag = 0;
}
void Sparkonto::setZins(double a)
{
    zins = a;
}
void Sparkonto::einzahlen(double b)
{
     betrag += b;
}
void Sparkonto::verzinsen()
{
     betrag += betrag * zins /100.0;
}
void Sparkonto::zeigeBetrag()
{
     cout &lt;&lt; &quot;Betrag: &quot; &lt;&lt; betrag &lt;&lt;endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1435371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435371</guid><dc:creator><![CDATA[petedeluxe2k]]></dc:creator><pubDate>Sat, 12 Jan 2008 13:15:00 GMT</pubDate></item><item><title><![CDATA[Reply to private static variablen einer klasse außerhalb der klasse initialisieren? on Sat, 12 Jan 2008 13:45:05 GMT]]></title><description><![CDATA[<p>die definition von zins außerhalb der klasse ist in ordnung.</p>
<pre><code class="language-cpp">//zins.cpp
#include &quot;sparkonto.h&quot;

double Sparkonto::zins;

//weiter wie gehabt
</code></pre>
<p>und ja, statische funktionen können nur mit statischen klassenvariablen arbeiten (weil sie ja an keine konkrete instanz gebunden sind).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435387</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Sat, 12 Jan 2008 13:45:05 GMT</pubDate></item><item><title><![CDATA[Reply to private static variablen einer klasse außerhalb der klasse initialisieren? on Sat, 12 Jan 2008 13:55:24 GMT]]></title><description><![CDATA[<p>dachte nur, dass das ein widerspruch wäre, da die variable private ist und<br />
ich diese dann eigentlich nicht von außerhalb der klasse<br />
benutzen bzw. initialisieren könnte?!<br />
danke für die schnelle antwort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435393</guid><dc:creator><![CDATA[petedeluxe2k]]></dc:creator><pubDate>Sat, 12 Jan 2008 13:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to private static variablen einer klasse außerhalb der klasse initialisieren? on Sat, 12 Jan 2008 14:19:20 GMT]]></title><description><![CDATA[<p>nun ja, ich würde nicht sagen, dass das &quot;von außerhalb&quot; ist.</p>
<pre><code class="language-cpp">class Foo
{
   void Bar ();
};

void Foo::Bar ()
{
}
</code></pre>
<p>die definition von Foo::Bar liegt jetzt auch außerhalb der klasse. verletzung der kapselung? wohl kaum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435411</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Sat, 12 Jan 2008 14:19:20 GMT</pubDate></item></channel></rss>