<?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[Objektorientiertes Programmieren Anfängerhilfe]]></title><description><![CDATA[<p>Hallo,<br />
in der Schule haben wir nun in C++ mit Objektorientiertem Programmieren angefangen, kurz OOP. Wir haben ein Projekt aufbekommen indem wir frei entscheiden können was es kann es sollen nur ein paar kriterien eingehalten werden.</p>
<p>Ich habe vor aus einer Textdatei mehrere Zahlen die untereinanderstehen zu addieren, alle Zahlen ausgeben klappt auch soweit nur wenn ich sie addieren möchte bekomme ich Datenmüll.<br />
Das ist meine Methode Daten_einlesen:</p>
<pre><code class="language-cpp">void addition::Daten_einlesen()
{
	string temp;
	double StrToDouble;
	fstream Datei;

	Datei.open(Dateiname.c_str(),ios::in);

	while(!Datei.eof())
	{

		getline(Datei,temp);        //Zeilenweise auslesen

		StrToDouble = atof(temp.data());  //string in dbl wandeln

		ergebnis = StrToDouble+ergebnis;  //addieren

	}

	Datei.close;

        cout&lt;&lt;ergebnis;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/285853/objektorientiertes-programmieren-anfängerhilfe</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 05:09:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285853.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 28 Apr 2011 19:22:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Thu, 28 Apr 2011 19:22:34 GMT]]></title><description><![CDATA[<p>Hallo,<br />
in der Schule haben wir nun in C++ mit Objektorientiertem Programmieren angefangen, kurz OOP. Wir haben ein Projekt aufbekommen indem wir frei entscheiden können was es kann es sollen nur ein paar kriterien eingehalten werden.</p>
<p>Ich habe vor aus einer Textdatei mehrere Zahlen die untereinanderstehen zu addieren, alle Zahlen ausgeben klappt auch soweit nur wenn ich sie addieren möchte bekomme ich Datenmüll.<br />
Das ist meine Methode Daten_einlesen:</p>
<pre><code class="language-cpp">void addition::Daten_einlesen()
{
	string temp;
	double StrToDouble;
	fstream Datei;

	Datei.open(Dateiname.c_str(),ios::in);

	while(!Datei.eof())
	{

		getline(Datei,temp);        //Zeilenweise auslesen

		StrToDouble = atof(temp.data());  //string in dbl wandeln

		ergebnis = StrToDouble+ergebnis;  //addieren

	}

	Datei.close;

        cout&lt;&lt;ergebnis;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2055739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055739</guid><dc:creator><![CDATA[runystar]]></dc:creator><pubDate>Thu, 28 Apr 2011 19:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Thu, 28 Apr 2011 19:27:59 GMT]]></title><description><![CDATA[<p>Wo ist denn Ergebnis definiert? Außerdem solltest du die Variable vor der Schleife mit 0 initialisieren, sonst addierst du den Datei-Inhalt zu dem Wert, der zufällig gerade darin steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055744</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 28 Apr 2011 19:27:59 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Thu, 28 Apr 2011 21:18:08 GMT]]></title><description><![CDATA[<p>Poste doch bitte mal den vollständigen kompilierbaren Teil dieses Codes, denn so kompiliert das sicherlich nicht.<br />
Wo ist denn deine Dateiname-Variable definiert?</p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055791</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Thu, 28 Apr 2011 21:18:08 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Thu, 28 Apr 2011 21:20:47 GMT]]></title><description><![CDATA[<p>runystar schrieb:</p>
<blockquote>
<p>Das ist meine Methode Daten_einlesen: ...</p>
</blockquote>
<p>Besser:</p>
<pre><code class="language-cpp">void addition::Daten_einlesen()
{
	ifstream Datei(Dateiname.c_str()); // (i)fstream steht schon für input
	ergebnis = 0; // initialisieren
	for( double zahl; Datei &gt;&gt; zahl; ) // wenn Du Zahlen willst, so lese Zahlen
	    ergebnis += zahl;
	cout&lt;&lt;ergebnis;
} // Datei.close() ist unnötig, das erledigt der Destruktor beim Verlassen des Scopes
</code></pre>
<p>Tipp: eines der wichtigsten Dinge bei OOP implementiert in C++ ist das Paar Konstruktor und Destruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055794</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 28 Apr 2011 21:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 05:48:11 GMT]]></title><description><![CDATA[<p>Und eines der wichtigsten Prinzipien der OOP ist das <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod" rel="nofollow">&quot;Single responsibility principle&quot;</a>. Das Lesen von Dateien liegt mit Sicherheit nicht im Zuständigkeitsbereich einer Addition (Oder diese Klasse ist schlecht benannt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055853</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Fri, 29 Apr 2011 05:48:11 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 07:46:28 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Und eines der wichtigsten Prinzipien der OOP ist das <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod" rel="nofollow">&quot;Single responsibility principle&quot;</a>. Das Lesen von Dateien liegt mit Sicherheit nicht im Zuständigkeitsbereich einer Addition (Oder diese Klasse ist schlecht benannt).</p>
</blockquote>
<p>ehm ja wieso schlecht benannt?!<br />
es gibt die Klasse &quot;addition&quot; in ihr sind dann daten_einlesen und daten_auslesen<br />
definiert.<br />
einlesen: daten aus datei holen und addieren<br />
auslesen: addierte zahlen auslesen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055885</guid><dc:creator><![CDATA[runystar]]></dc:creator><pubDate>Fri, 29 Apr 2011 07:46:28 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 07:51:43 GMT]]></title><description><![CDATA[<p>Das meint er wohl mit diesem Prinzip ... Eine Klasse die fuer rechenoperationen verantwortlich ist soll nicht auch gleichzeitig für file-Operationen sorgen müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055887</guid><dc:creator><![CDATA[Cvcv]]></dc:creator><pubDate>Fri, 29 Apr 2011 07:51:43 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 07:56:17 GMT]]></title><description><![CDATA[<p>An Werner Salomon:<br />
Danke für deinen hilfreichen Code, die Kommentare sind sehr gelungen besonders gut gefällt mir &quot;wenn Du Zahlen willst, so lese Zahlen&quot;.<br />
Ich wusste nicht das man direkt Zahlen also double-Variablen aus einer datei lesen kann. Ich dachte erst string dann in double wandeln.....</p>
<p>An CStoll: Danke das ich nicht initialisiert habe war vllt mein fehler.<br />
ergebnis ist eine private variable der klasse <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>An fr33g: Danke aber Werner Salomon hat den fehler behoben. Das Programm bescheht aus den Dateien main, header und methoden. im header steht die klasse. in methoden sind die methoden der klasse und main ist denke ich klar ;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055888</guid><dc:creator><![CDATA[runystar]]></dc:creator><pubDate>Fri, 29 Apr 2011 07:56:17 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 07:56:47 GMT]]></title><description><![CDATA[<p>Was verstehst du denn unter &quot;auslesen&quot;?</p>
<p>Ansonsten solltest du die Aufgaben sauber trennen - eine Klasse liest bzw. schreibt die Zahlen aus Dateien, die andere rechnet mit den Zahlen. Sonst endest du mit einem halben Dutzend Klassen, die alle fast den selben Code besitzen und sich nur in der angewendeten Rechenoperation unterscheiden - und Code-Duplikation ist immer ein schlechtes Omen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055889</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 29 Apr 2011 07:56:47 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 08:01:06 GMT]]></title><description><![CDATA[<p>Ja, irgendwo denke ich du/sie haben/hast recht aber da wir gerade mit dem Spaß angefangen haben kann ich da echt nix zu sagen, ich bin erstmal froh das ich ein programm was eigendlich 20 zeilen hat auf 3 dateien gesplittet habe.<br />
...danke trotzdem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055890</guid><dc:creator><![CDATA[runystar]]></dc:creator><pubDate>Fri, 29 Apr 2011 08:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 08:08:58 GMT]]></title><description><![CDATA[<p>Ich weiß nicht so wirklich was du uns mit dem letzten Post sagen wolltest ;o</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055898</guid><dc:creator><![CDATA[Cvcv]]></dc:creator><pubDate>Fri, 29 Apr 2011 08:08:58 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 08:10:56 GMT]]></title><description><![CDATA[<p>runystar schrieb:</p>
<blockquote>
<p>brotbernd schrieb:</p>
<blockquote>
<p>Und eines der wichtigsten Prinzipien der OOP ist das <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod" rel="nofollow">&quot;Single responsibility principle&quot;</a>. Das Lesen von Dateien liegt mit Sicherheit nicht im Zuständigkeitsbereich einer Addition (Oder diese Klasse ist schlecht benannt).</p>
</blockquote>
<p>ehm ja wieso schlecht benannt?!</p>
</blockquote>
<p>Hallo runystar,</p>
<p>der Kern des Problems liegt wohl darin, dass die C++-Klasse addition keine(!) Klasse im Sinne von OOP ist. Was eine Klasse im Sinne von OOP ist, kann ich Dir aber leider nicht in drei Sätzen erklären.</p>
<p>runystar schrieb:</p>
<blockquote>
<p>es gibt die Klasse &quot;addition&quot; in ihr sind dann daten_einlesen und daten_auslesen<br />
definiert.<br />
einlesen: daten aus datei holen und addieren<br />
auslesen: addierte zahlen auslesen</p>
</blockquote>
<p>Ich vermute mal, dass bis auf den Dateinamen beide Methoden nichts miteinander zu tun haben. D.h. beide Methoden könnte auch leicht als frei stehende Funktionen realisiert werden, ohne dass Du in Deinem main irgendetwas an Funktionalität einbüßt.<br />
Das wäre es, was ich mit 'keine Klasse im Sinne von OOP' meine.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055900</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 29 Apr 2011 08:10:56 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 09:18:02 GMT]]></title><description><![CDATA[<p>Kannst du eventuell mal das komplette Projekt vorstellen und genau erklären, was ihr eigentlich vorhabt? Vielleicht wird es dann für uns leichter, sachtaugliche Hinweise anzubieten.<br />
Mit dem Fragement kann ich nur eins sagen: nur weil du in deinem Programm &quot;class&quot; verwendest, ist es noch lange nicht <a href="http://de.wikipedia.org/wiki/Objektorientierte_Programmierung" rel="nofollow">objektorientiert</a>.</p>
<p>PS: Und die Addition würde ich sogar noch kürzer hinbekommen:</p>
<pre><code class="language-cpp">ifstream file(Dateiname.c_str());
double ergebnis = accumulate(istream_iterator&lt;double&gt;(file),istream_iterator&lt;double&gt;(),0.0); //Edit: richtigen Startwert angegeben
return ergebnis;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2055901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055901</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 29 Apr 2011 09:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 08:40:25 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Und die Addition würde ich sogar noch kürzer hinbekommen:</p>
<pre><code class="language-cpp">ifstream file(Dateiname.c_str());
double ergebnis = accumulate(istream_iterator&lt;double&gt;(file),istream_iterator&lt;double&gt;(),0);
return ergebnis;
</code></pre>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055910</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Fri, 29 Apr 2011 08:40:25 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 08:46:41 GMT]]></title><description><![CDATA[<p>Danke das ihr euch so bemüht habt, ich konnte mein problem beheben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055911</guid><dc:creator><![CDATA[runystar]]></dc:creator><pubDate>Fri, 29 Apr 2011 08:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 08:55:33 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Und die Addition würde ich sogar noch kürzer hinbekommen:</p>
<pre><code class="language-cpp">ifstream file(Dateiname.c_str());
double ergebnis = accumulate(istream_iterator&lt;double&gt;(file),istream_iterator&lt;double&gt;(),0);
return ergebnis;
</code></pre>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
</blockquote>
<p>bei aller Begeisterung für diese Konstruktion, so enthält sie doch einen groben Fehler. Wer es nicht glaubt, probiere es doch mal, damit die Summe von den zwei Zahlen</p>
<pre><code>2.5
3.5
</code></pre>
<p>zu bestimmen. Das Ergebnis obigen Programms ist in diesem Fall <strong>nicht</strong> 6.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055917</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 29 Apr 2011 08:55:33 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 09:17:29 GMT]]></title><description><![CDATA[<p>Krümelkacker :p Das kommt davon, wenn ich keinen C++ Compiler greifbar habe.<br />
*korrigiert den Code*<br />
Jetzt müsste es aber stimmen, oder hast du noch mehr Probleme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2055937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055937</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 29 Apr 2011 09:17:29 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 09:53:00 GMT]]></title><description><![CDATA[<p>Dass ein Punkt so einen Unterschied macht <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>CStoll schrieb:</p>
<blockquote>
<p>Krümelkacker :p Das kommt davon, wenn ich keinen C++ Compiler greifbar habe.</p>
</blockquote>
<p><a href="http://ideone.com/452B5" rel="nofollow">http://ideone.com/452B5</a> <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/2055965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2055965</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 29 Apr 2011 09:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to Objektorientiertes Programmieren Anfängerhilfe on Fri, 29 Apr 2011 10:59:59 GMT]]></title><description><![CDATA[<p>Ich schreibe meist aus dem Gedächtnis, aber nach Werners Hinweis hatte ich den Code doch mal <a href="http://codepad.org" rel="nofollow">codepad.org</a> gejagt - und der hat mich auch auf diesen Punkt aufmerksam gemacht <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="😃"
    /><br />
(vielleicht sollte ich mir einen dieser Online-Compiler für Notfälle bookmarken)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056011</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 29 Apr 2011 10:59:59 GMT</pubDate></item></channel></rss>