<?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[globale Variablen in einer Klasse oder mehr Parameter für Funktionen?]]></title><description><![CDATA[<p>Hi,<br />
Was wäre:<br />
1. Leselicher<br />
2. Performance besser<br />
3. allgemein &quot;Gültiger&quot;</p>
<p>Wenn ich z.B. 5 globale Variablen im private-Bereich eine Klasse deklariere oder immer 3-4 Variablen an die einzelnen Funktionen der Klasse übergeben würde und so nur 1-2 globale Variable haben würde?</p>
<p>Mal abgesehen davon, dass 5 Variablen noch nicht alzuviele sind, was würde der &quot;richtige&quot; C++-ler da machen?</p>
<p>danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>p.s. auf die Variablen soll vom &quot;User&quot; her nicht zugegriffen werden, darum auch im private Bereich</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186004/globale-variablen-in-einer-klasse-oder-mehr-parameter-für-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 06:43:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186004.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Jul 2007 23:11:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Tue, 03 Jul 2007 23:11:54 GMT]]></title><description><![CDATA[<p>Hi,<br />
Was wäre:<br />
1. Leselicher<br />
2. Performance besser<br />
3. allgemein &quot;Gültiger&quot;</p>
<p>Wenn ich z.B. 5 globale Variablen im private-Bereich eine Klasse deklariere oder immer 3-4 Variablen an die einzelnen Funktionen der Klasse übergeben würde und so nur 1-2 globale Variable haben würde?</p>
<p>Mal abgesehen davon, dass 5 Variablen noch nicht alzuviele sind, was würde der &quot;richtige&quot; C++-ler da machen?</p>
<p>danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>p.s. auf die Variablen soll vom &quot;User&quot; her nicht zugegriffen werden, darum auch im private Bereich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317826</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Tue, 03 Jul 2007 23:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Tue, 03 Jul 2007 23:32:07 GMT]]></title><description><![CDATA[<p>Beschreib mal genauer worum es geht, das klingt nach nicht-so-gutem Design.<br />
(Du solltest garkeine &quot;globalen&quot; Variablen in der Klasse haben die man ansonsten auch &quot;static members&quot; nennt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317832</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 03 Jul 2007 23:32:07 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 00:02:56 GMT]]></title><description><![CDATA[<p>Es geht gerade ehr um das Thoretische.<br />
In der Klasse Kreis hat man z.b. die public Variable &quot;Durchmesser&quot;, die die Größe des Kreises bestimmt.</p>
<p>Der Grund warum sie public ist, ist klar:<br />
Der &quot;User&quot; will natürliche den Durchmesser des Kreises bestimmen, daher muss er diese Zahl angeben können. Und damit man nicht für jeden neuen Durchmesser eine neue Instanze der Klasse anlegen muss (man könnte ja sonst die Variable dem Konstruktor übergeben) hat man &quot;Durchmesser&quot; public gemacht.</p>
<p>Um nun aber den Flächeninhalt des Kreises zu berechnen, brauche ich die Zahl pi. Die ändert sich nie, wird aber in jeder Funktion zur Kreisberechnung gebraucht. (Ok pi ist vielleicht ein doofes Beispiel, aber lasst euch mal drauf ein..)<br />
Ich könnte pi nun theoretisch in eine globale Variable im private-Bereich einfügen und im Konstruktor setzen oder bei jedem Funktionsaufruf pi verlangen und dann in den Funktionen &quot;durchreichen&quot;.</p>
<p>Was wäre da die eleganter Lösung, pi als static member oder &quot;durchreichen&quot;? (auch im Hinblick, dass es vielleicht mal mehr Variable werden, die man braucht)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317840</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Wed, 04 Jul 2007 00:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 04:47:15 GMT]]></title><description><![CDATA[<p>am beispiel kreis..</p>
<p>globale VAriable ist vll. der falsche Ausdruck.. nenen wir deine Variablen mal Members der Klasse..</p>
<p>1. Im Falle Druchmesser.. den würde ich auch &quot;Privat&quot; deklarieren (Information Hiding) und über get/Set methoden verändern...</p>
<p>2. Parameter mit der alle funktionen rechnen.. sind natürlich auch privat, und würde ich evlt. in einer strukt zsuammenfassen, und diesen in den methoden übergeben, wobei du diese nich übergeben müssetest, weil du in den Membermethoden zugriff auf die member variablen der Klasse hast. (sinn einer klasse)</p>
<p>3. Variablen die fest in einer klasse definiert sind (bspw. PI) , welche du evtl. beim anlegen eineer instanz definierst, würd ich &quot;privat const &quot; machen</p>
<p>Sovviel mal zu deinen ersten Überlegungen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317853</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 04 Jul 2007 04:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 05:14:14 GMT]]></title><description><![CDATA[<p>konstanten wie pi sollten lieber statische methoden einer hilfsklasse werden. Math::pi() oder so (wenn const vor überschreiben schützt von mir aus auch als public field). wenn eine klasse solche konstanten benötigt, includiert sie einfach den entsprechenden header und verwendet sie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317855</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Wed, 04 Jul 2007 05:14:14 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 09:34:46 GMT]]></title><description><![CDATA[<p>Naja mit pi war nur ein Beispiel und ziemlich schlecht^^</p>
<p>Also im konkreten Fall, den ich nun aber mal verallgemeiner wollte, habe ich zwei char Variablen, die nur für den &quot;temporären&quot; gebruch sind. Also der &quot;User&quot; bekommt von diesen nichts mit, werden aber in allen Funktionen gebraucht.</p>
<p>Was also machen? Beide als member oder als parameter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318032</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Wed, 04 Jul 2007 09:34:46 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 09:43:07 GMT]]></title><description><![CDATA[<p>Grundsätzlich sollen sich Klassen ja wie &quot;reale&quot; Objekte verhalten.<br />
Z.B. stell dir einen Hund vor, dem du sein Fresschen gibst. Du hältst ihm ein Stück Rind hin und sagst &quot;friss&quot;.<br />
Du hast entsprechend das Objekt Hund, von dem du eine Methode aufrufst (friss), als Parameter bekommt der Hund das Stück Fleisch. Es würde keinen Sinn machen, wenn du dem Hund noch seine Zähne übergibst oder ihm sagst, in welcher Geschwindigkeit er kauen soll.</p>
<p>Und zu der Sache mit dem Kreis: Der Benutzer der Klasse muss/darf/sollte gar nicht wissen, wie der Umfang ausgerechnet wird, also ob über pi, sinus oder sonstwas.<br />
Der Programmierer muss/sollte/darf einfach nur wissen, dass man zum berechnen des Umfangs den Durchmesser angeben muss, denn daraus wird der Umfang berechnet; alles andere muss der Kreis machen. Quasi darf er nur redundante Eingabedaten fordern, oft ist weniger mehr <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/1318035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318035</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 04 Jul 2007 09:43:07 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 09:50:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Kreis{

const double PI 3.14
const double m_dDurchmesser;

public:

Kreis(double dDurchmesser) : m_dDurchmesser(dDurchmesser){}

double calc_Umpfang(){

  return m_Durchmesser*PI;

};

double calc_Fläche(){

  return ((m_Durchmesser/2)*(m_Durchmesser/2)) *PI;

};

};
</code></pre>
<p>wie du siehst haben die methoden keine parameter.. reicht dir das als Anreiz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318042</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 04 Jul 2007 09:50:47 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 09:56:24 GMT]]></title><description><![CDATA[<p>Darum gehts ja....<br />
sollen die Funktionen Parameter haben oder soll ich alles über die member regeln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318047</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Wed, 04 Jul 2007 09:56:24 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 10:07:47 GMT]]></title><description><![CDATA[<p>Kann man nicht pauschal sagen :p Manche Funktionen brauchen eben Parameter, die Methoden der Kreisklasse von Boris aber nicht.<br />
Programmiere einfach vor dich hin, du wirst schon ein Feeling dafür entwickeln <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318056</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 04 Jul 2007 10:07:47 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 10:08:13 GMT]]></title><description><![CDATA[<p>Kommt darauf an, wofür du den entsprechenden Wert brauchst. Nimm zum Beispiel badestrand's Methode Hund::friss() - die Zähne und die Kaugeschwindigkeit des Hundes sind ein Teil von ihm und sollten deshalb als Member gehalten werden, das Futter übergibst du als Parameter.</p>
<p>(Bei deinem Kreis gilt: Der Durchmesser ist Teil des Kreises und damit Member, Pi ist eine Konstante - die legst du entweder global oder als statischen Member an, Parameter brauchst du nur, wenn du die Kreisgröße ändern willst (im Setter des Durchmessers))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318057</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 04 Jul 2007 10:08:13 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 10:57:33 GMT]]></title><description><![CDATA[<p>Noch ein Anreiz:</p>
<p>Als extra Methode Zylinder berechnen, muss man die höhedes Zylinder übergeben, der rest kommt vom Kreis objekt... würde ich nun noch die höhedes Zylinder in das Kreis klasse implementieren, wäre die klasse nicht mehr im logischen denken komplett, aus es wäre eine &quot;Zylinder klasse&quot;</p>
<p>[cpp]Kreis(double dDurchmesser) : m_dDurchmesser(dDurchmesser){}</p>
<p>double calc_Umpfang(){</p>
<p>return m_Durchmesser*PI;</p>
<p>};</p>
<p>double calc_Fläche(){</p>
<p>return ((m_Durchmesser/2)*(m_Durchmesser/2)) *PI;</p>
<p>};</p>
<p><strong>double calc_Zylinder(double dHeight){<br />
return (((m_Durchmesser/2)*(m_Durchmesser/2)) *PI)* dHeight;<br />
};</strong></p>
<p>};[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318095</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 04 Jul 2007 10:57:33 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen in einer Klasse oder mehr Parameter für Funktionen? on Wed, 04 Jul 2007 13:26:11 GMT]]></title><description><![CDATA[<p>Pi ist wohl am besten in einem Präprozessor-Define oder einer statischen inline Methode aufgehoben.<br />
Noch besser wäre eine statische Konstante wenn denn C++ damit ordentlich umgehen könnte, was bei floats/doubles leider nicht gegeben ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1318245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1318245</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 04 Jul 2007 13:26:11 GMT</pubDate></item></channel></rss>