<?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[Frage zu const und static]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich bin absoluter Anfänger in Sachen C++. Geringe Vorkenntnisse in C hab ich, aber ist auch eher dürftig. Wir sind heute im Studium mit C++ angefangen.</p>
<p>In unserem Script steht folgendes zu statischen Methoden:</p>
<blockquote>
<p>Statische Methoden können mit oder ohne Instanz der Klasse aufgerufen werden.</p>
</blockquote>
<p>Jetzt frag ich mich wozu das gut ist, wenn es keine Instanz der Klasse gibt. Instanz heißt doch, dass die Klasse initialisiert wurde, richtig?</p>
<p>zb: (code ist nur beispielhaft und nicht komplett)</p>
<pre><code class="language-cpp">class Account
		{ public:
		    static int getDeposits()
				{
				 return deposits;
				}
		  private:
		    static int deposits;};
</code></pre>
<p>jetzt wäre die klasse doch nur definiert, richtig?</p>
<p>was bringt es mir jetzt, zb</p>
<pre><code class="language-cpp">int total = Account::getDeposits();
</code></pre>
<p>aufzurufen, wenn noch keine instanz vorhanden ist, somit auch dem deposit kein wert zugeteilt ist?</p>
<p>Oder ist das einfach nur ne Möglichkeit von aussen an die Methode ranzukommen? Würde es nicht funktionieren, wenn man die static deklaration weglassen würde?</p>
<p>ich hoffe es sind nich allzu dumme fragen, aber ich check es einfach nicht^^</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267006/frage-zu-const-und-static</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 18:12:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267006.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 May 2010 20:45:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu const und static on Mon, 17 May 2010 20:45:25 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich bin absoluter Anfänger in Sachen C++. Geringe Vorkenntnisse in C hab ich, aber ist auch eher dürftig. Wir sind heute im Studium mit C++ angefangen.</p>
<p>In unserem Script steht folgendes zu statischen Methoden:</p>
<blockquote>
<p>Statische Methoden können mit oder ohne Instanz der Klasse aufgerufen werden.</p>
</blockquote>
<p>Jetzt frag ich mich wozu das gut ist, wenn es keine Instanz der Klasse gibt. Instanz heißt doch, dass die Klasse initialisiert wurde, richtig?</p>
<p>zb: (code ist nur beispielhaft und nicht komplett)</p>
<pre><code class="language-cpp">class Account
		{ public:
		    static int getDeposits()
				{
				 return deposits;
				}
		  private:
		    static int deposits;};
</code></pre>
<p>jetzt wäre die klasse doch nur definiert, richtig?</p>
<p>was bringt es mir jetzt, zb</p>
<pre><code class="language-cpp">int total = Account::getDeposits();
</code></pre>
<p>aufzurufen, wenn noch keine instanz vorhanden ist, somit auch dem deposit kein wert zugeteilt ist?</p>
<p>Oder ist das einfach nur ne Möglichkeit von aussen an die Methode ranzukommen? Würde es nicht funktionieren, wenn man die static deklaration weglassen würde?</p>
<p>ich hoffe es sind nich allzu dumme fragen, aber ich check es einfach nicht^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898680</guid><dc:creator><![CDATA[raised.fist]]></dc:creator><pubDate>Mon, 17 May 2010 20:45:25 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu const und static on Mon, 17 May 2010 20:58:42 GMT]]></title><description><![CDATA[<p>In C++ macht eine Klasse, die nur aus statischen Funktionen und Variablen besteht keinen Sinn. Man könnte das gleiche Verhalten auch mit einem Namespace lösen.</p>
<p>Manchmal gibt es aber Funktionen, die auch ohne, dass die Klasse erstellt wird bereits verfügbar seien sollen. Stell dir vor, du hast eine Klasse, die einen String darstellt. Diese Klasse hat meinetwegen eine statische Methode, um alle führenden Leerzeichen zu löschen.</p>
<p>Du könntest dadurch bequem folgendes machen:</p>
<pre><code class="language-cpp">String::LeftTrim(&quot;   Test&quot;);
</code></pre>
<p>Das hat den Vorteil, dass du die Funktion geordnet hast. Sie liegt also nicht im globalen Namespace, sondern in der Klasse String. Dabei verwaltet String nicht nur einen String, sondern stellt auch weitere Funktionalitäten zur Verfügung, die auch für andere Zeichenketten nützlich wären.</p>
<p>Ohne static müsste man folgendes machen:</p>
<pre><code class="language-cpp">String temp = &quot;&quot;;

temp.LeftTrim(&quot;   bla&quot;);
</code></pre>
<p>Dein Beispiel würde ohne static nicht klappen, da die statische Methode auch nur auf statische Variablen zugreifen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898685</guid><dc:creator><![CDATA[ghjghj]]></dc:creator><pubDate>Mon, 17 May 2010 20:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu const und static on Tue, 18 May 2010 05:55:00 GMT]]></title><description><![CDATA[<p>raised.fist schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class Account
		{ public:
		    static int getDeposits()
				{
				 return deposits;
				}
		  private:
		    static int deposits;};
</code></pre>
<p>jetzt wäre die klasse doch nur definiert, richtig?</p>
<p>was bringt es mir jetzt, zb</p>
<pre><code class="language-cpp">int total = Account::getDeposits();
</code></pre>
<p>aufzurufen, wenn noch keine instanz vorhanden ist, somit auch dem deposit kein wert zugeteilt ist?</p>
</blockquote>
<p>Die Klasse ist defininiert, die statische Variable deposits jedoch nicht. Dort fehlt einmal in einer Source-Datei die definition der Variable:</p>
<pre><code class="language-cpp">int Account::deposits = 5;
</code></pre>
<p>Dort kannst du sie, wie man hier sehen kann, auch gleich initialisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898740</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Tue, 18 May 2010 05:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu const und static on Tue, 18 May 2010 08:05:04 GMT]]></title><description><![CDATA[<p>ghjghj schrieb:</p>
<blockquote>
<p>[...]</p>
<pre><code class="language-cpp">String::LeftTrim(&quot;   Test&quot;);
</code></pre>
<p>[...]</p>
</blockquote>
<p>Ungünstiges Beispiel. Left-Trim kann genausogut als freie Funktion definiert werden, im gleichen Namespace wie String. Statische Methoden haben imo meist nur dann einen Sinn, wenn sie entweder auf statische Variablen zugreifen oder protected sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898795</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 May 2010 08:05:04 GMT</pubDate></item></channel></rss>