<?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[Brauche dringend Hilfe.]]></title><description><![CDATA[<p>Ich habe folgenden Quellext:</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;string&gt;<br />
using namespace std;</p>
<p>enum filetype {IN, OUT};</p>
<p>class Datei{<br />
private:<br />
string fname;<br />
fstream file;<br />
public:<br />
Datei(string name, filetype ftype){<br />
fname=name;<br />
if(ftype==0){<br />
file.open(name.c_str(), ios::in);<br />
}else{<br />
file.open(name.c_str(), ios::out);<br />
}<br />
}<br />
int Datei::readNumbers(int n, int store[]){<br />
string zahlen;<br />
file &gt;&gt; zahlen;<br />
cout &lt;&lt; zahlen;<br />
}<br />
~Datei(){<br />
file.close();<br />
}<br />
};</p>
<p>int main(){<br />
int n=5;<br />
int x;<br />
int *zahl=new int[n];<br />
filetype type=IN;<br />
string name=&quot;testfile_aufg_9_4.txt&quot;;<br />
Datei::Datei(name, type);<br />
Datei::Datei::readNumbers(n, zahl);<br />
for(int i=0; i&lt;n; i++){<br />
cout &lt;&lt; zahl[i] &lt;&lt; endl;<br />
}<br />
delete[] zahl;<br />
return 0;<br />
}</p>
<p>Und der Compiler gibt mir folgende Fehlermeldung aus:</p>
<p>cannot call member function `int Datei::readNumbers(int, int*)' without object</p>
<p>Woran liegt das?</p>
<p>Ich brauche schnell eine Antwort, da sie Aufgabe bis morgen fertig sein muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/131462/brauche-dringend-hilfe</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 03:56:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/131462.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Jan 2006 17:30:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Tue, 03 Jan 2006 17:30:32 GMT]]></title><description><![CDATA[<p>Ich habe folgenden Quellext:</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;string&gt;<br />
using namespace std;</p>
<p>enum filetype {IN, OUT};</p>
<p>class Datei{<br />
private:<br />
string fname;<br />
fstream file;<br />
public:<br />
Datei(string name, filetype ftype){<br />
fname=name;<br />
if(ftype==0){<br />
file.open(name.c_str(), ios::in);<br />
}else{<br />
file.open(name.c_str(), ios::out);<br />
}<br />
}<br />
int Datei::readNumbers(int n, int store[]){<br />
string zahlen;<br />
file &gt;&gt; zahlen;<br />
cout &lt;&lt; zahlen;<br />
}<br />
~Datei(){<br />
file.close();<br />
}<br />
};</p>
<p>int main(){<br />
int n=5;<br />
int x;<br />
int *zahl=new int[n];<br />
filetype type=IN;<br />
string name=&quot;testfile_aufg_9_4.txt&quot;;<br />
Datei::Datei(name, type);<br />
Datei::Datei::readNumbers(n, zahl);<br />
for(int i=0; i&lt;n; i++){<br />
cout &lt;&lt; zahl[i] &lt;&lt; endl;<br />
}<br />
delete[] zahl;<br />
return 0;<br />
}</p>
<p>Und der Compiler gibt mir folgende Fehlermeldung aus:</p>
<p>cannot call member function `int Datei::readNumbers(int, int*)' without object</p>
<p>Woran liegt das?</p>
<p>Ich brauche schnell eine Antwort, da sie Aufgabe bis morgen fertig sein muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955873</guid><dc:creator><![CDATA[NYrox]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:30:32 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Tue, 03 Jan 2006 17:36:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;fstream&gt; 
#include &lt;string&gt; 
using namespace std; 

enum filetype {IN, OUT}; 

class Datei{ 
private: 
string fname; 
fstream file; 
public: 
Datei(string name, filetype ftype){ 
fname=name; 
if(ftype==0){ 
file.open(name.c_str(), ios::in); 
}else{ 
file.open(name.c_str(), ios::out); 
} 
} 
int Datei::readNumbers(int n, int store[]){ 
string zahlen; 
file &gt;&gt; zahlen; 
cout &lt;&lt; zahlen; 
} 
~Datei(){ 
file.close(); 
} 
}; 

int main(){ 
int n=5; 
int x; 
int *zahl=new int[n]; 
filetype type=IN; 
string name=&quot;testfile_aufg_9_4.txt&quot;; 
Datei::Datei(name, type); 
Datei::Datei::readNumbers(n, zahl); 
for(int i=0; i&lt;n; i++){ 
cout &lt;&lt; zahl[i] &lt;&lt; endl; 
} 
delete[] zahl; 
return 0; 
}
</code></pre>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/955880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955880</guid><dc:creator><![CDATA[siktir lan]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:36:54 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Tue, 03 Jan 2006 17:40:49 GMT]]></title><description><![CDATA[<p>liegtd as ab fstream?<br />
wenn ja, den fstream kannste net so behandeln.<br />
file &gt;&gt; zahlen. ist zwar supi aber wohin soll das gehen? DA ist kein objekt vorhanden</p>
<p>versuche den fstream anders zu machen<br />
einaml gibbet den<br />
o(utput)fstream und den i(nput)stream</p>
<p>ofstream f(&quot;meine datei.txt&quot;);<br />
f &lt;&lt; &quot;hallo&quot;;</p>
<p>so musst du das machen.<br />
und beim ifstream</p>
<p>musste natürlcih ne datei open(&quot;fdh.fasd&quot;); erstmal öfnne <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/955885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955885</guid><dc:creator><![CDATA[hmmgdfsg]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:40:49 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Tue, 03 Jan 2006 17:45:30 GMT]]></title><description><![CDATA[<p>Das würde ich ja gerne machen, aber ich weiß beim programmieren noch nicht, ob die Datei später zum lesen oder zum schreiben genutzt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955890</guid><dc:creator><![CDATA[NYrox]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:45:30 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Tue, 03 Jan 2006 17:47:51 GMT]]></title><description><![CDATA[<p>also denkste auch das das am stream liegt?</p>
<p>aber nur so kannste den stream auch benutzen - SOWEIT ich weiß ^^ :roll: ich als der noob <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/955895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955895</guid><dc:creator><![CDATA[sdggsd]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:47:51 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Tue, 03 Jan 2006 17:49:36 GMT]]></title><description><![CDATA[<p>Ich habe keine Ahnung, woran es liegt. Ich glaube mal, dass das mit fstream richtig ist, da das in der Aufgabe vorgegeben war, dass ich da ein fstream benutzen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/955897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955897</guid><dc:creator><![CDATA[NYrox]]></dc:creator><pubDate>Tue, 03 Jan 2006 17:49:36 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Tue, 03 Jan 2006 19:02:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Datei::Datei(name, type);
Datei::Datei::readNumbers(n, zahl);
</code></pre>
<p>Habt ihr schon gelernt wie man von einer Klasse eine Instanz erzeugt und eine Methode darauf anwendet?</p>
<pre><code class="language-cpp">Datei datei(name, type);
datei.readNumbers(n, zahl);
</code></pre>
<p><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/955983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955983</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 03 Jan 2006 19:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Tue, 03 Jan 2006 19:30:26 GMT]]></title><description><![CDATA[<p>so gehts, ist aber nicht schön.<br />
müsst ihr klassen benutzen ? ( damit hast du anscheinend noch leichte probleme <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="🙂"
    /> ) ohne ginge es viel kuerzer...</p>
<p>ich haette das oeffnen der datei lieber in die lese methode gestellt.</p>
<p>ausserdem hab ich noch eine public var fuer die anzahl der gelesenen zeichen definiert, sonst kriegst du beim auslesen des zahlen arrays speichermuell angezeigt.</p>
<p>tipp:<br />
immer schoen fehler abfangen ( datei nicht vorhanden, array zu klein ) macht zwar etwas arbeit, erspart aber hinterher das dreifache an zeit fuer die fehlersuche...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
using namespace std;

enum filetype {IN, OUT};

class Datei{
   private:
      string fname;
      fstream file;
   public:
      int anzahl;

      Datei(string name, filetype ftype){
      anzahl=0;

      if(ftype==0){
         file.open(name.c_str(), ios::in);
         if (!file.good()) {
            cout&lt;&lt;&quot;datei &quot;&lt;&lt;name&lt;&lt;&quot; nicht da\n&quot;;
            system(&quot;pause&quot;);
            exit(1);
         }
      }else{
         file.open(name.c_str(), ios::out);
      }
   }

   int Datei::readNumbers(int n, int store[]){
      anzahl=0;
      while(!file.eof() ){
         file &gt;&gt; store[anzahl];
         cout &lt;&lt; store[anzahl]&lt;&lt;&quot;, &quot;;
         anzahl++;
         if (anzahl&gt;=n){
            cout&lt;&lt;&quot;zahlen speicher zu klein\n&quot;;
            system(&quot;pause&quot;);
            exit(1);
         }
      }      
      file.close();
      cout&lt;&lt;endl;
   }
   ~Datei(){
      cout&lt;&lt;&quot; destruktor called &quot;;
   }
};

int main(){
   int n=10;
   int x;
   int *zahl=new int[n];

   filetype type=IN;
   string name=&quot;test.txt&quot;;

   Datei Dat(name, type);

   Dat.readNumbers(n, zahl);
   cout&lt;&lt;&quot;\ngelesen: \n&quot;;
   for(int i=0; i&lt;Dat.anzahl; i++){
      cout &lt;&lt; zahl[i] &lt;&lt;&quot;, &quot;;
   }
   delete[] zahl;
   cout&lt;&lt;endl;
   system(&quot;pause&quot;);
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/956022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956022</guid><dc:creator><![CDATA[kermit1]]></dc:creator><pubDate>Tue, 03 Jan 2006 19:30:26 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Wed, 04 Jan 2006 11:03:44 GMT]]></title><description><![CDATA[<p>@kermit1:<br />
Danke, dass du dir so viel Arbeit gemacht hast, das alles zu schreiben, aber ich muss mich streng an die Aufgabenstellung halten.<br />
Die Aufgabe lautet:<br />
Definieren Sie eine Klasse Datei, die verwendet werden soll, um die Handhabung von tatsächlichen<br />
Dateien einfacher zu machen. Um verschiedene Dateitypen unterscheiden zu können, definieren Sie<br />
enum filetype {IN, OUT};<br />
Die Klasse enthält:<br />
1. Ein privates Feld fname für einen Dateinamen (verwenden Sie string).<br />
2. Ein privates Feld file für einen Stream (Datentyp fstream).<br />
3. Einen Konstruktor Datei(string name, filetype ftype). Nach dem Aufruf sollte fname die Zeichenkette aus name enthalten, und der Stream file sollte entweder zum Lesen (wenn ftype gleich IN ist) oder zum Schreiben (wenn ftype gleich OUT ist) offen sein. Hinweis: fstream.open muss mit char* aufgerufen werden.<br />
4. Einen Destruktor. Stellen Sie sicher, dass kein Stream offen bleibt.</p>
<p>Soweit funktioniert alles, aber hier ist die zweite Augabe:<br />
Erweitern Sie Ihre Klasse um eine öffentliche Funktion<br />
int Datei::readNumbers(int n, int store []);<br />
die Zahlen aus dem Stream file liest, und diese in store speichert. Die Funktion soll alle Zahlen aus<br />
dem Stream lesen, wenn es weniger als n sind, sonst die n ersten. Der Rückgabewert soll der Anzahl der<br />
eingelesenen Zahlen entsprechen.<br />
Hinweis: Sie können annehmen, dass die Datei nur Ganzzahlen, separiert von Leerzeichen, enthält.<br />
Und damit habe ich Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956430</guid><dc:creator><![CDATA[NYrox]]></dc:creator><pubDate>Wed, 04 Jan 2006 11:03:44 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Wed, 04 Jan 2006 11:06:19 GMT]]></title><description><![CDATA[<p>Achja. Die Funktion an sich erzeugt keine Fehlermeldung, sondern der Aufruf der Funktion im main-Teil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956433</guid><dc:creator><![CDATA[NYrox]]></dc:creator><pubDate>Wed, 04 Jan 2006 11:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Wed, 04 Jan 2006 11:08:00 GMT]]></title><description><![CDATA[<p>Meinen Beitrag gelesen? <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/956434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956434</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 04 Jan 2006 11:08:00 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Wed, 04 Jan 2006 11:16:49 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10648">@LordJaxom</a>:<br />
Oh. so klappt es. Würdest du mir bitte erklären, warum das so geht und nicht so, wie ich es gemacht habe? In der Uni habe ich es so gelernt, wie ich es gemacht habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956443</guid><dc:creator><![CDATA[NYrox]]></dc:creator><pubDate>Wed, 04 Jan 2006 11:16:49 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Wed, 04 Jan 2006 13:40:56 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuchs mal zu erklären. Mit</p>
<pre><code class="language-cpp">Datei datei(parameter1, parameter2);
</code></pre>
<p>wird eine Instanz der Klasse erzeugt, indem der Konstruktor deiner Klasse aufgerufen wird und ihm die Parameter parameter1 und parameter2 übergeben werden, d.h. du hast dann ein Objekt mit dem Namen datei vom Typ Datei (also dem Klassennamen). Auf dieses Objekt kannst du jetzt Memberfunktionen der Klasse anwenden. Zum Beispiel eben readNumbers dazu musst du dem Compiler natürlich mitteilen auf welches Objekt du die Funktion anwenden willst. Deshalb</p>
<pre><code class="language-cpp">datei.readnumbers(n, zahl);
</code></pre>
<p>diese Funktion ruft jetzt readNumbers mit den Parametern n und zahl für die Instanz datei auf.</p>
<p>Hoffe ich konnte ein wenig helfen.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956625</guid><dc:creator><![CDATA[Jaschi]]></dc:creator><pubDate>Wed, 04 Jan 2006 13:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Wed, 04 Jan 2006 13:53:36 GMT]]></title><description><![CDATA[<p>Danke. Das hat mir schon gut geholfen. Ich glaube, ich verstehe es jetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956646</guid><dc:creator><![CDATA[NYrox]]></dc:creator><pubDate>Wed, 04 Jan 2006 13:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Wed, 04 Jan 2006 15:01:09 GMT]]></title><description><![CDATA[<p>Jetzt habe ich ein anderes Problem. Wie kann ich ein zweites mal auf datei zugreifen, nachdem ich es einmal mit &quot;Datei datei(name, type);&quot; aufgerufen habe? Mit &quot;datei(name, type);&quot; geht es nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956728</guid><dc:creator><![CDATA[NYrox]]></dc:creator><pubDate>Wed, 04 Jan 2006 15:01:09 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche dringend Hilfe. on Wed, 04 Jan 2006 15:55:28 GMT]]></title><description><![CDATA[<p>&quot;datei&quot; mit dem kleinen &quot;d&quot; ist ein Objekt Deiner Klasse Datei. Mit</p>
<pre><code class="language-cpp">Datei datei(&quot;name&quot;, type);
</code></pre>
<p>legst Du das Objekt an. Damit existiert es, und Du kannst es nicht noch einmal anlegen. Du kannst ein zweites Objekt vom Typ Datei (das mit dem grossen &quot;d&quot; ist der Typ) anlegen, dann wird auch der Konstruktor ein zweites Mal aufgerufen:</p>
<pre><code class="language-cpp">Datei datei2(&quot;neuername&quot;, type);
</code></pre>
<p>Das aber ist die Erzeugung, kein Zugriff. Ein Zugriff wäre z.B. der Aufruf der Methode</p>
<pre><code class="language-cpp">datei.readNumbers(n, zahl);
</code></pre>
<p>. Und zwar ein Zugriff auf das Objekt datei (mit dem Dateinamen &quot;name&quot;). Mit</p>
<pre><code class="language-cpp">datei2.readNumbers(n, zahl);
</code></pre>
<p>greifst Du auf das Objekt datei2 (mit dem Dateinamen &quot;neuername&quot;) zu.</p>
<p>Also: &quot;Datei&quot; ist ein Typ. Eine Beschreibung des Inhalts und der Verhaltensweisen einer Datei. &quot;datei&quot; und &quot;datei2&quot; sind Objekte des Typs Datei, sie repräsentieren zwei echte Dateien auf der Festplatte. readNumbers ist eine Methode, die auf ein solches Objekt angewendet werden kann und aus dieser physikalischen Datei Daten in das Objekt lädt.</p>
<p>Datei::readNumbers(n, zahl); ist falsch weil kein Objekt existiert (der Compiler fragt sich &quot;Ok, er möchte Zahlen aus einer Datei gelesen haben. Aber aus welcher Datei?&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/956810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/956810</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 04 Jan 2006 15:55:28 GMT</pubDate></item></channel></rss>