<?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[OO Anfänger: Gemeinsamme Funktionen für Klassen]]></title><description><![CDATA[<p>Hi,</p>
<p>Hallo ersteinmal<br />
Ich beschäfftige mich mit der OO Programmierung, bin da leider etwas aus anderen Programmier- bzw Scriptsprachen &quot;versaut&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich schreibe also ein Programm, dass aus verschiedenen Teilen/Modulen besteht.<br />
Diese Teile habe ich alle in eigenen Klassen gepackt, da sie zueinander unabhängig sind, und nicht mit einander zu tun haben.</p>
<p>Nun habe ich aber auch noch einige eigene (Hilfs-)Funktionen (Zeichenkettenmanipulation, etc) die von alles Klassen verwendet werden.</p>
<p>Die Frage ist jetzt, was man das am besten mit solchen Funktionen macht? Erstellt man eine eigene Klasse??<br />
Wie binde ich die am sinnvollsten in den einzelnen Klassen ein?</p>
<p>Bin da wirklich ratlos.</p>
<p>Grüße<br />
Maddes</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163700/oo-anfänger-gemeinsamme-funktionen-für-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 07:41:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163700.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Nov 2006 06:37:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 06:37:53 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Hallo ersteinmal<br />
Ich beschäfftige mich mit der OO Programmierung, bin da leider etwas aus anderen Programmier- bzw Scriptsprachen &quot;versaut&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich schreibe also ein Programm, dass aus verschiedenen Teilen/Modulen besteht.<br />
Diese Teile habe ich alle in eigenen Klassen gepackt, da sie zueinander unabhängig sind, und nicht mit einander zu tun haben.</p>
<p>Nun habe ich aber auch noch einige eigene (Hilfs-)Funktionen (Zeichenkettenmanipulation, etc) die von alles Klassen verwendet werden.</p>
<p>Die Frage ist jetzt, was man das am besten mit solchen Funktionen macht? Erstellt man eine eigene Klasse??<br />
Wie binde ich die am sinnvollsten in den einzelnen Klassen ein?</p>
<p>Bin da wirklich ratlos.</p>
<p>Grüße<br />
Maddes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165889</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Wed, 01 Nov 2006 06:37:53 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 07:10:16 GMT]]></title><description><![CDATA[<p>Hilfsfunktionen sind Funktionen und sollten auch so formuliert werden.</p>
<p>Es gibt Programmierer, die Utility-Klassen schreiben, um Hilfsfunktionen zu sammeln, aber das ist schlechter Stil und kommt aus Programmiersprachen, die keine eigenständigen Funktionen kennen. Es macht keinen Sinn etwas zusammen zu fassen, was nicht zusammen gehört.</p>
<p>Wenn Du die Funktionen irgendwie zusammenfassen möchtest, dann verwende Namensräume (namespace).</p>
<p>Tntnet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165897</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 01 Nov 2006 07:10:16 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 07:16:43 GMT]]></title><description><![CDATA[<p>hola</p>
<p>spricht doch nix dagegen, wenn du deine hilfsfunktionen in ne eigene datei schreibst oder also static members in ne klasse packst. dann bindest die ein, wenn du sie brauchst. vielleicht noch als template, damit du die funktionen spaeter auch fuer wide-strings verwenden kannst. wenn du reine funktionen machst, waere es unter umstaenden auch geschickt, diese in einen eigenen namespace zu legen, falls du mal fremde bibliotheken verwendest und die funktionsnamen schon vorhanden sein sollten. dann gibts wenigstens keinen aerger.<br />
wuerd mich aber auch interessieren, wie es andere machen.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165901</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Wed, 01 Nov 2006 07:16:43 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 07:38:33 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich würde die Funktionen nicht als static-member in eine Klasse packen, weil es doch auch dafür namespaces gibt. Also eigenen namespace Funktionen rein und alles ist bgut.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165919</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Nov 2006 07:38:33 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 07:55:07 GMT]]></title><description><![CDATA[<p>Danke Leute <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>Werds so machen!<br />
Dachte erst, es wäre vllt nicht &quot;genug objektorientiert&quot; <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>
<p>Hab da gleich noch eine Frage.</p>
<p>eine Funktion</p>
<pre><code class="language-cpp">std::string foobar (std::string&amp; foo) {

    machwas...

}
</code></pre>
<p>aufgerufen durch:</p>
<pre><code>foobar(bla);
</code></pre>
<p>oder eine Funktion</p>
<pre><code class="language-cpp">std::string foobar (std::string foo) {

    machwas...
    return foo;

}
</code></pre>
<p>aufgerufen durch:</p>
<pre><code>bla = foobar(bla);
</code></pre>
<p>Was ist &quot;besser&quot;?<br />
Ich glaube das nennt man call-by-reference und call-by-value, richtig? *duck*</p>
<p>genau weiss ichs nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165927</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Wed, 01 Nov 2006 07:55:07 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 08:11:24 GMT]]></title><description><![CDATA[<p>Maddes schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::string foobar (std::string&amp; foo) {

    machwas...

}
</code></pre>
</blockquote>
<p>da hast doch auch einen rueckgabewert. da brauchst dann auch ein return.<br />
ansonsten ist der rueckgabewert 'void'.</p>
<p>wie du das nun machst, haengt von der funktionalitaet deiner funktion ab.<br />
soll der string manipuliert werden ? oder willst du nur eine kopie des manipulierten strings haben ? gibts viel moeglichkeit.<br />
da muesstest schon ein konkretes beispiel geben, damit man sich dazu gendanken machen kann. oftmals werden von funktionen auch werte zurueckgegeben, die nur indirekt mit dem string zu tun haben.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165935</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Wed, 01 Nov 2006 08:11:24 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 08:23:13 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>okay, Rückgabewert der ersten Funktion ist natürlich falsch. Wäre dann wahrscheinlich int mit 0 oder 1.</p>
<p>Ja, der String soll manipuliert werden.<br />
Hier mal ein Beispiel.</p>
<p>Die Funktionen habe ich gestern geschrieben und da ist mir die Frage gekommen. Die sollen halt im string str - rep durch rep2 ersetzten:</p>
<pre><code class="language-cpp">int replace ( std::string&amp; str, std::string rep, std::string rep2 ) {

	while ( str.find(rep) &lt; 1024 )      // Workaround
	{
		str.replace( str.find(rep), sizeof(rep), rep2 );
	}	
    return 1;
}
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">std::string replace ( std::string str, std::string rep, std::string rep2 ) {

	while ( str.find(rep) &lt; 1024 )      // Workaround
	{
		str.replace( str.find(rep), sizeof(rep), rep2 );
	}	
    return std;
}
</code></pre>
<p>bitte nicht über die Funktionen lachen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Aber für ein Beispiel sind die denk ich gut geeignet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165942</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Wed, 01 Nov 2006 08:23:13 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 08:32:00 GMT]]></title><description><![CDATA[<p>re</p>
<pre><code class="language-cpp">int replace ( std::string&amp; str, std::string rep, std::string rep2 ) {

    while ( str.find(rep) &lt; 1024 )      // Workaround
    {
        str.replace( str.find(rep), sizeof(rep), rep2 );
    }   
    return 1;
}
</code></pre>
<p>aus laufzeitgruenden solltest di funktion etwas umschreiben:</p>
<pre><code class="language-cpp">int replace ( std::string&amp; str, const std::string &amp;rep, const std::string &amp;rep2 ) {

    while ( str.find(rep) &lt; 1024 )      // Workaround
    {
        str.replace( str.find(rep), sizeof(rep), rep2 );
    }   
    return 1;
}
</code></pre>
<p>sonst wird immer ne kopie angelegt.<br />
in dem fall koennte man z.b. bool zurueckgeben, ob der string ueberhaupt gefunden wurde, der ersetzt werden soll. oder einen int mit der position, bzw. einen iterator, ab wo der string geaendert worden war.<br />
eventuell eine referenz auf den veraenderten string selber zurueckgeben.<br />
hab da wirklich keine ahnung was in dem fall sinnbringender waere.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165949</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Wed, 01 Nov 2006 08:32:00 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 08:38:50 GMT]]></title><description><![CDATA[<p>Und die Funktion selber enthält immer noch einige Fehler:</p>
<ul>
<li>sizeof(rep) liefert nicht die Stringlänge, sondern die Größe der String-Verwaltungsdaten (ein char* und ein paar size_t's)</li>
<li>string::find() liefert npos zurück, wenn es nichts gefunden hat</li>
<li>wenn rep ein Teil von rep2 ist, läufst du in eine Endlosschleife<sup>(*)</sup></li>
</ul>
<p>Schau dir mal den Artikel &quot;Stringverarbeitung in C++&quot; an, dort habe ich eine replace_all()-Funktion für dich geschrieben.</p>
<p><sup>(*)</sup> OK, nicht ganz - nach einer Weile würde sich der String mit einer Exception bedanken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165958</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 01 Nov 2006 08:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to OO Anfänger: Gemeinsamme Funktionen für Klassen on Wed, 01 Nov 2006 08:57:32 GMT]]></title><description><![CDATA[<p>2 x str.find(rep) aufzurufen ist Verschwendung der CPU.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165967</guid><dc:creator><![CDATA[2]]></dc:creator><pubDate>Wed, 01 Nov 2006 08:57:32 GMT</pubDate></item></channel></rss>