<?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[Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung...]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>gezwungenermaßen muss ich mir c++ aneignen und wir haben hier eine erste kleine übung bekommen:</p>
<p>Ziel ist es minuten ein und Stunden:Minuten auszugeben. (in: 130 out: 2:10)</p>
<p>mir geht es jetzt darum, erstmal dieses Programm ans laufen zu bekommen, eine eingabe einzulesen, den Wert in Std:Min auszugeben und fertig.</p>
<p>ich habe die deklarationen in einer Minuten.h gemacht, die Methoden in die Minuten.cpp und in der main wollte ich jetzt einfach die Aufforderung zur eingabe ausgeben und dann darunter sollen eben die Methoden nacheinander ablaufen.</p>
<p>Bitte verzeit mir, wenn ich hier grobe Denkfehler drin haben sollte.</p>
<p>Minuten.h:</p>
<pre><code>class Minuten {

public:

Minuten();		// Konstruktor

void eingabe();
int berechneStunden();
int berechneMinuten();
void ausgabe();
void abbruch();

private:
int minuten;

~Minuten();

};
</code></pre>
<p>Minuten.cpp</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &quot;Minuten.h&quot;

Minuten::Minuten()
{

}

void Minuten::eingabe()

{ cin &gt;&gt; minuten ;}

int Minuten::berechneStunden() 

{return (minuten/60);}

int Minuten::berechneMinuten()

{return (minuten%60);}

void Minuten::ausgabe()

{ cout &lt;&lt; Minuten::berechneStunden() &lt;&lt; &quot;:&quot; &lt;&lt; Minuten::berechneMinuten() &lt;&lt;endl; }

Minuten::~Minuten()
{

}
</code></pre>
<p>main.cpp</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &quot;Minuten.h&quot;

int _tmain(int argc, _TCHAR* argv[])
{

	cout &lt;&lt; &quot;Geben Sie die Zeit in Minuten ein: &quot; &lt;&lt; endl;

	Minuten::eingabe;
	Minuten::berechneMinuten;
	Minuten::berechneStunden;
	Minuten::ausgabe;

	getchar();

	return 0;
}
</code></pre>
<p>gewisse dinge waren in der übungsvorlage auch schon gegeben und so dinge wie den konstruktor habe ich jetzt hier noch gar nicht benutzt. da muss ich mich erst etwas mehr mit beschäftigen.</p>
<p>es gibt beim aufruf der 4 Methoden in der main jeweils einen Fehler:</p>
<p>&quot;&quot;Minuten::eingabe&quot;: Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie &quot;&amp;Minuten::eingabe&quot;, um einen Zeiger auf den Member zu erstellen.&quot;</p>
<p>Die Idee dahinter war einfach nur nacheinander die Methoden aufzurufen und da diese ja in der Klasse minuten stehen habe ich es mit dem &quot;Minuten::&quot; versucht aufzurufen.</p>
<p>Frage 1: was sagt mir dieser fehler/ wie behebe ich ihn<br />
Frage 2: würde das denn Grundsätzlich so gehen oder sind da irgendwelche groben fehler drin?</p>
<p>Wenn das Programm erst mal läuft will/muss ich es auch noch erweitern. (abbruchbedingung, evtl. was mit pointern und new operator, datei schreiben)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310645/hilfe-bei-ersten-simplen-programm-mit-methoden-und-klassen-letzte-frage-zu-initialisierung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 05:35:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310645.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Nov 2012 13:19:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Mon, 19 Nov 2012 10:47:45 GMT]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>gezwungenermaßen muss ich mir c++ aneignen und wir haben hier eine erste kleine übung bekommen:</p>
<p>Ziel ist es minuten ein und Stunden:Minuten auszugeben. (in: 130 out: 2:10)</p>
<p>mir geht es jetzt darum, erstmal dieses Programm ans laufen zu bekommen, eine eingabe einzulesen, den Wert in Std:Min auszugeben und fertig.</p>
<p>ich habe die deklarationen in einer Minuten.h gemacht, die Methoden in die Minuten.cpp und in der main wollte ich jetzt einfach die Aufforderung zur eingabe ausgeben und dann darunter sollen eben die Methoden nacheinander ablaufen.</p>
<p>Bitte verzeit mir, wenn ich hier grobe Denkfehler drin haben sollte.</p>
<p>Minuten.h:</p>
<pre><code>class Minuten {

public:

Minuten();		// Konstruktor

void eingabe();
int berechneStunden();
int berechneMinuten();
void ausgabe();
void abbruch();

private:
int minuten;

~Minuten();

};
</code></pre>
<p>Minuten.cpp</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &quot;Minuten.h&quot;

Minuten::Minuten()
{

}

void Minuten::eingabe()

{ cin &gt;&gt; minuten ;}

int Minuten::berechneStunden() 

{return (minuten/60);}

int Minuten::berechneMinuten()

{return (minuten%60);}

void Minuten::ausgabe()

{ cout &lt;&lt; Minuten::berechneStunden() &lt;&lt; &quot;:&quot; &lt;&lt; Minuten::berechneMinuten() &lt;&lt;endl; }

Minuten::~Minuten()
{

}
</code></pre>
<p>main.cpp</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &quot;Minuten.h&quot;

int _tmain(int argc, _TCHAR* argv[])
{

	cout &lt;&lt; &quot;Geben Sie die Zeit in Minuten ein: &quot; &lt;&lt; endl;

	Minuten::eingabe;
	Minuten::berechneMinuten;
	Minuten::berechneStunden;
	Minuten::ausgabe;

	getchar();

	return 0;
}
</code></pre>
<p>gewisse dinge waren in der übungsvorlage auch schon gegeben und so dinge wie den konstruktor habe ich jetzt hier noch gar nicht benutzt. da muss ich mich erst etwas mehr mit beschäftigen.</p>
<p>es gibt beim aufruf der 4 Methoden in der main jeweils einen Fehler:</p>
<p>&quot;&quot;Minuten::eingabe&quot;: Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie &quot;&amp;Minuten::eingabe&quot;, um einen Zeiger auf den Member zu erstellen.&quot;</p>
<p>Die Idee dahinter war einfach nur nacheinander die Methoden aufzurufen und da diese ja in der Klasse minuten stehen habe ich es mit dem &quot;Minuten::&quot; versucht aufzurufen.</p>
<p>Frage 1: was sagt mir dieser fehler/ wie behebe ich ihn<br />
Frage 2: würde das denn Grundsätzlich so gehen oder sind da irgendwelche groben fehler drin?</p>
<p>Wenn das Programm erst mal läuft will/muss ich es auch noch erweitern. (abbruchbedingung, evtl. was mit pointern und new operator, datei schreiben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271736</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Mon, 19 Nov 2012 10:47:45 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 13:31:19 GMT]]></title><description><![CDATA[<p>Schau dir das hier mal an:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class calc
{

public:
		void eingabe();
		void ausgabe();
private:
		int min;

};

void calc :: eingabe()
{
	cin&gt;&gt;min;
}

void calc :: ausgabe()
{
	cout&lt;&lt;min;
}

int main(int argc, char* argv[])
{
calc obj;

cout&lt;&lt;&quot;Eingabe: &quot;;
obj.eingabe();

cout&lt;&lt;&quot;Ausgabe: &quot;;
obj.ausgabe();

return 0;
}
</code></pre>
<p>Versuch dein Programm erst mal nur mit einer Funktion ans laufen zu bekommen.</p>
<p>btw. deine Minuten.cpp musst du deinem Projekt hinzufügen, aber ich denke das hast du schon gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271741</guid><dc:creator><![CDATA[O_______O]]></dc:creator><pubDate>Sat, 17 Nov 2012 13:31:19 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 13:38:45 GMT]]></title><description><![CDATA[<p>danke. ich schau mal.</p>
<p>was meinst du mit hinzufügen?</p>
<p>also es steht links bei den Quelldateien...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271744</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Sat, 17 Nov 2012 13:38:45 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 13:38:50 GMT]]></title><description><![CDATA[<p>Klassische &quot;Alles muss eine Klasse sein&quot;-Krankheit.</p>
<pre><code>#include &lt;stdio.h&gt;
int main(int argc, char *argv[]){
	unsigned int minuten;
	if (!fscanf(stdin, &quot;%u&quot;, &amp;minuten))
		return printf(&quot;falsche Eingabe\n&quot;);
	printf(&quot;%d:%02d\n&quot;, minuten / 60, minuten % 60);
	return 0;
}
</code></pre>
<p>Wenn du eine Wahl hast beschäftige dich mit irgendwas, was mit Objekten zu tun hat, sonst wirst du an C++ keinen Spaß haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271745</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sat, 17 Nov 2012 13:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 13:44:04 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Klassische &quot;Alles muss eine Klasse sein&quot;-Krankheit.</p>
<pre><code>#include &lt;stdio.h&gt;
int main(int argc, char *argv[]){
	unsigned int minuten;
	if (!fscanf(stdin, &quot;%u&quot;, &amp;minuten))
		return printf(&quot;falsche Eingabe\n&quot;);
	printf(&quot;%d:%02d\n&quot;, minuten / 60, minuten % 60);
	return 0;
}
</code></pre>
<p>Wenn du eine Wahl hast beschäftige dich mit irgendwas, was mit Objekten zu tun hat, sonst wirst du an C++ keinen Spaß haben.</p>
</blockquote>
<p>Klassische &quot;Ich verwechsle C mit C++&quot; Krankheit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271747</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sat, 17 Nov 2012 13:44:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 13:47:02 GMT]]></title><description><![CDATA[<p>wie gesagt das war die erste Übung.</p>
<p>und die Minuten.h war quasi schon so vorgegeben.</p>
<p>wir sollen das halt mit dem OOP von anfang an lernen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271752</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Sat, 17 Nov 2012 13:47:02 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 13:55:45 GMT]]></title><description><![CDATA[<p>Dir fehlen krasse Grundlagen. Eigentlich solltest du dir jetzt einfach ein <a href="http://www.c-plusplus.net/forum/310212" rel="nofollow">Buch holen</a>, durcharbeiten und erst wieder fragen wenn du die Grundlagen beherrschst.</p>
<p>Aber ich helf dir mal so.</p>
<blockquote>
<p>Ziel ist es minuten ein und Stunden:Minuten auszugeben. (in: 130 out: 2:10)</p>
<p>mir geht es jetzt darum, erstmal dieses Programm ans laufen zu bekommen, eine eingabe einzulesen, den Wert in Std:Min auszugeben und fertig.</p>
</blockquote>
<p>Das ist gut. Aber du machst es dir viel zu kompliziert. Wieso gleich eine Klasse dafür schreiben? Das macht hier keinen Sinn. Klassen benutzt man nicht um eine Gruppe von Funktionen zusammenzufassen (außer in bspw. Java, aber das hier ist C++).<br />
Dafür würde man Namespaces verwenden, aber da du noch weit davon entfernt bist, mach alles mal lieber ohne beides.</p>
<blockquote>
<p>Frage 1: was sagt mir dieser fehler/ wie behebe ich ihn</p>
</blockquote>
<p>Hmm:</p>
<blockquote>
<p>da diese ja in der Klasse minuten stehen habe ich es mit dem &quot;Minuten::&quot; versucht aufzurufen</p>
</blockquote>
<p><strong>1.</strong> Um eine Memberfunktion einer Klasse aufzurufen brauchst du, solange sie wie in deinem Fall nicht <code>static</code> ist, eine Instanz.<br />
Du behandelst hier eine Klasse wie einen Namensraum. Wenn du einen willst, dann nimm' ihn auch!<br />
Und setz' dich bitte ein wenig mit OOp auseinander, du hast ja grundsätzlich falsche Vorstellungen.<br />
<strong>2.</strong> Um eine Funktion aufzurufen musst du unabhängig davon wie sie aussieht immer eine Parameterliste angeben.<br />
Wenn die Funktion keine Parameter nimmt, dann ist die Liste eben leer (also einfach ein Klammerpaar &quot;()&quot;), aber sie ist immer noch da.</p>
<blockquote>
<p>Frage 2: würde das denn Grundsätzlich so gehen oder sind da irgendwelche groben fehler drin?</p>
</blockquote>
<p>&quot;grobe Fehler&quot;? Naja, wenn du schon so fragst: Ja.<br />
Das Design ist auch völliger Blödsinn, s. o.<br />
Aber das löst sich alles von selbst sobald du mal ein Grundlagenbuch durchgeackert hast.</p>
<p>Eigentlich könnte man alles ganz kurz in der <code>main()</code> lösen:</p>
<pre><code>#include &lt;iostream&gt;

int main()
{
        std::cout &lt;&lt; &quot;Minuten: &quot;;

        unsigned i;

        if(std::cin &gt;&gt; i) ///Wenn das Einlesen erfolgreich war, dann ergibt dieser Ausdruck zu bool konvertiert 'true', sonst 'false'
                std::cout &lt;&lt; &quot;Umgerechnet sind das &quot; &lt;&lt; i / 60 &lt;&lt; &quot; Stunden und &quot; &lt;&lt; i % 60 &lt;&lt; &quot; Minuten.&quot; &lt;&lt; std::endl; /// Das ist einfache Mathematik, einfach mit Blatt und Stift nachrechnen
}
</code></pre>
<p>Der Trick bei diesem Code ist u. a., dass Divisionen mit Ganzzahl-Typen in C++ immer abgerundet werden, bzw. der Nachkommateil fällt weg. Dadurch ergibt er Ausdruck <em>200 / 60</em> bspw. <em>3</em>, weil <em>3.333...</em> einfach abgerundet wird.</p>
<p>O_______O schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Bitte keinen Scheiß posten, danke.</p>
<p>out schrieb:</p>
<blockquote>
<p>nwp3 schrieb:</p>
<blockquote>
<p>[garbage]</p>
</blockquote>
<p>Klassische &quot;Ich verwechsle C mit C++&quot; Krankheit.</p>
</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="👍"
    /><br />
So eine Kacke muss man sich hier auch noch reinziehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271755</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 17 Nov 2012 13:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 14:10:03 GMT]]></title><description><![CDATA[<p>wie gesagt wir sollen es so machen...</p>
<p>ich habe auc versucht eine instanz aufzurufen in main</p>
<p>aber er unterstreicht es mir rot.</p>
<p>[code=&quot;cpp&quot;]Minuten Instanz1;</p>
<p>cout &lt;&lt; &quot;Geben Sie die Zeit in Minuten ein: &quot; &lt;&lt; endl;</p>
<p>Minuten::eingabe();<br />
Minuten::berechneMinuten();<br />
Minuten::berechneStunden();<br />
Minuten::ausgabe();<br />
[/code]</p>
<p>die u /u sind rot unterstrichen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271761</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Sat, 17 Nov 2012 14:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 14:30:31 GMT]]></title><description><![CDATA[<p>Versuchs mal mit Instanz1.eingabe() statt Minuten::eingabe().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271772</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sat, 17 Nov 2012 14:30:31 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 14:41:21 GMT]]></title><description><![CDATA[<p>jetzt ist nur noch Instanz1 oben unterstrichen. Also nach Minuten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271777</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Sat, 17 Nov 2012 14:41:21 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 15:00:48 GMT]]></title><description><![CDATA[<p>Hast du das #include &quot;Minuten.h&quot; vergessen? Vielleicht vertippt?<br />
Gib nicht so viel auf die rote Linie, die ist auch manchmal falsch. Einfach kompilieren und Fehlermeldung mit in den Beitrag kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271779</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sat, 17 Nov 2012 15:00:48 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 15:02:04 GMT]]></title><description><![CDATA[<p>spell schrieb:</p>
<blockquote>
<p>jetzt ist nur noch Instanz1 oben unterstrichen. Also nach Minuten</p>
</blockquote>
<p>So wie du deine Klasse Minuten umgesetzt hast, brauchst du eine Instanz der Klasse um die Methoden verwenden zu können.</p>
<p>Statt</p>
<pre><code>cout &lt;&lt; &quot;Geben Sie die Zeit in Minuten ein: &quot; &lt;&lt; endl;

    Minuten::eingabe;
    Minuten::berechneMinuten;
    Minuten::berechneStunden;
    Minuten::ausgabe;
</code></pre>
<p>müsstest du das schreiben:</p>
<pre><code>Minuten meineMinuten;  // eine Instanz der Klasse Minuten anlegen
cout &lt;&lt; &quot;Geben Sie die Zeit in Minuten ein: &quot; &lt;&lt; endl;

    meineMinuten.eingabe();
    meineMinuten.berechneMinuten();
    meineMinuten.berechneStunden();
    meineMinuten.ausgabe();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2271780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271780</guid><dc:creator><![CDATA[hmpff]]></dc:creator><pubDate>Sat, 17 Nov 2012 15:02:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 15:21:37 GMT]]></title><description><![CDATA[<p>Ach so, da sind noch ein paar Kleinigkeiten.</p>
<p>Hast du in der Minuten.cpp und main.cpp #include &lt;iostream&gt; verwendet?</p>
<p>Hast du using namespace std; verwendet? Besser std::cout statt nur cout hinschreiben. Dasselbe natürlich für std::cin und std::endl;</p>
<p>Und ganz wichtig ist ein Fehler in der &quot;Minuten.h&quot;. Du deklarierst dort nämlich den Destruktor im private: Bereich. Das geht nicht.<br />
~Minuten() muss auch unter public: stehen.</p>
<p>Hoffe das hilft. <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/2271790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271790</guid><dc:creator><![CDATA[hmpff]]></dc:creator><pubDate>Sat, 17 Nov 2012 15:21:37 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 15:34:42 GMT]]></title><description><![CDATA[<p>Ich habe die #include &quot;stdafx.h&quot; und die #include &quot;Minuten.h&quot;</p>
<p>inder stdafx.h hab ich drin:</p>
<p>#include &quot;targetver.h&quot;</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;tchar.h&gt;<br />
#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>(hhab schon gelesen das mann das namespace wohl nich in die h machen sollte. aber sei jetzt erstal dahingestellt.</p>
<p>hmpff schrieb:</p>
<blockquote>
<p>Und ganz wichtig ist ein Fehler in der &quot;Minuten.h&quot;. Du deklarierst dort nämlich den Destruktor im private: Bereich. Das geht nicht.<br />
~Minuten() muss auch unter public: stehen.</p>
<p>Hoffe das hilft. <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>
</blockquote>
<p>das war es. danke <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="🙂"
    /> ich habe einfach die vorlage die wir bekommen haben in die minuten.h kopiert und da stand das mit dem kon-/ und de-struktor schon drin ..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271792</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Sat, 17 Nov 2012 15:34:42 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sat, 17 Nov 2012 18:01:20 GMT]]></title><description><![CDATA[<p>wenn jetzt noch eine Abfrage hinzukommen soll, ob ein gültiger integerwert eingegeben wurde, muss ich dann die minuten als char einlesen, dann über diese ACII tabelle abfragen ob der wert zwischen x und y liegt (in dieser tabelle) und mit, ich glaube atoi(), in einen integer umwandeln?</p>
<p>oder gibts da in c++ nich irgendwas eleganteres ala &quot;if (minuten =! int) break; oder so?</p>
<p>des weiteren wollte ich in der Main() eine while(1) Schleife reinmachen und die break Bedinung in einer Methode abbruch() in der Minuten.cpp einbinden, was aber wohl nicht geht...</p>
<p>wenn ich in der Main.cpp die minuten abfragen will, geht dies aber auch nicht weil sie private sind ...</p>
<p>gibts da was?</p>
<p>achja</p>
<p>&quot;unsigned int Minuten::minutenTotal = minutenTotal + minuten;&quot;</p>
<p>geht auch nicht <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271826</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Sat, 17 Nov 2012 18:01:20 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sun, 18 Nov 2012 09:23:25 GMT]]></title><description><![CDATA[<p>spell schrieb:</p>
<blockquote>
<p>wenn jetzt noch eine Abfrage hinzukommen soll, ob ein gültiger integerwert eingegeben wurde, muss ich dann die minuten als char einlesen, dann über diese ACII tabelle abfragen ob der wert zwischen x und y liegt (in dieser tabelle) und mit, ich glaube atoi(), in einen integer umwandeln?</p>
<p>oder gibts da in c++ nich irgendwas eleganteres ala &quot;if (minuten =! int) break; oder so?</p>
</blockquote>
<pre><code>if(std::cin &gt;&gt; minuten)
  std::cout &lt;&lt; &quot;Eingabe richtig\n&quot;;
else
  std::cout &lt;&lt; &quot;Eingabe falsch\n&quot;;
</code></pre>
<p>Wenn nämlich in eine int-Variable eingelesen werden soll und die Eingabe nicht passt geht cin in einen Fehlerzustand. Den kann man abfragen.</p>
<p>spell schrieb:</p>
<blockquote>
<p>des weiteren wollte ich in der Main() eine while(1) Schleife reinmachen und die break Bedinung in einer Methode abbruch() in der Minuten.cpp einbinden, was aber wohl nicht geht...</p>
</blockquote>
<p><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="😕"
    /> Willst du bei einer falschen Eingabe die Schleife in der main unterbrechen, oder was ist der Zweck der Sache?</p>
<p>spell schrieb:</p>
<blockquote>
<p>wenn ich in der Main.cpp die minuten abfragen will, geht dies aber auch nicht weil sie private sind ...</p>
<p>gibts da was?</p>
</blockquote>
<p>Mach minuten public oder füge eine Methode hinzu, die dir den Wert von minuten zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271944</guid><dc:creator><![CDATA[hmpff]]></dc:creator><pubDate>Sun, 18 Nov 2012 09:23:25 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sun, 18 Nov 2012 09:26:24 GMT]]></title><description><![CDATA[<p>spell schrieb:</p>
<blockquote>
<p>oder gibts da in c++ nich irgendwas eleganteres ala &quot;if (minuten =! int) break; oder so?</p>
</blockquote>
<p>Sag mal liest du meine Posts überhaupt? <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="🙄"
    /><br />
Das ist doch echt unglaublich.</p>
<p>Sone schrieb:</p>
<blockquote>
<p>if(std::cin &gt;&gt; i) ///Wenn das Einlesen erfolgreich war, dann ergibt dieser Ausdruck zu bool konvertiert 'true', sonst 'false'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2271946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271946</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 18 Nov 2012 09:26:24 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sun, 18 Nov 2012 13:26:15 GMT]]></title><description><![CDATA[<p>hab ich überlesen bzw konnte zu dem Zeitpunkt nichts mit anfangen.</p>
<p>Es will alles et so wie ich will ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> habe ein get_eingabe hinzugefügt was die minuten enthalten soll weil die ja private sind ... (war halt schon so vorgegeben).. aber auch wenn ich die publi mache ändert das nichts am ablauf</p>
<p>Minuten.h</p>
<pre><code>class Minuten {

public:

void eingabe();
unsigned int get_eingabe;
unsigned int berechneStunden();
unsigned int berechneMinuten();
void ausgabe();
unsigned int minutenTotal();

private:
unsigned int minuten;

};
</code></pre>
<p>Minuten.cpp</p>
<pre><code>void Minuten::eingabe()

{ cin &gt;&gt; minuten;
  unsigned int get_eingabe=minuten;}

unsigned int Minuten::berechneStunden() 

{return (minuten/60);}

unsigned int Minuten::berechneMinuten()

{return (minuten%60);}

void Minuten::ausgabe()

{ cout &lt;&lt; Minuten::berechneStunden() &lt;&lt; &quot;:&quot; &lt;&lt; Minuten::berechneMinuten() &lt;&lt;endl; }

unsigned int Minuten::minutenTotal() 

{ unsigned int minutenTotal;
  return (minutenTotal = minutenTotal + minuten);}
</code></pre>
<p>Main.cpp</p>
<pre><code>int _tmain(int argc, _TCHAR* argv[])
{

while(1){

Minuten Instanz;

	cout &lt;&lt; &quot;Geben Sie die Zeit in Minuten ein: &quot; &lt;&lt; endl;

	if (cin &gt;&gt; Instanz.get_eingabe)	{

	Instanz.eingabe();
	Instanz.berechneMinuten();
	Instanz.berechneStunden();
	Instanz.ausgabe();
									}

    else (cout &lt;&lt; &quot;Eingabe beendet. Minuten Total: \n&quot; &lt;&lt; Instanz.minutenTotal() &lt;&lt; endl);
    break;
	   }

	system (&quot;PAUSE&quot;);

	return 0;
}
</code></pre>
<p>er soll halt einfach die Schleife solange durchlaufen bis irgendein zeichen eingegeben wurde. Dann sollen die gesamteingegebenen minuten ausgegeben werden und das programm soll beendet werden...</p>
<p>Akuell passiert folgendes:</p>
<p>erste zahl eingeben -&gt; enter -&gt; nix passiert<br />
zweite zahl eingeben -&gt; enter -&gt; normale ausgabe in std:min<br />
dritte zahl nicht möglich. &quot;drücken sie eine beliebige taste bla bla...&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272032</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Sun, 18 Nov 2012 13:26:15 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sun, 18 Nov 2012 16:01:49 GMT]]></title><description><![CDATA[<p>spell schrieb:</p>
<blockquote>
<p>Es will alles et so wie ich will ...</p>
<p>...</p>
<p>er soll halt einfach die Schleife solange durchlaufen bis irgendein zeichen eingegeben wurde. Dann sollen die gesamteingegebenen minuten ausgegeben werden und das programm soll beendet werden...</p>
<p>Akuell passiert folgendes:</p>
<p>erste zahl eingeben -&gt; enter -&gt; nix passiert<br />
zweite zahl eingeben -&gt; enter -&gt; normale ausgabe in std:min<br />
dritte zahl nicht möglich. &quot;drücken sie eine beliebige taste bla bla...&quot;</p>
</blockquote>
<p>Das ist halt das blöde an C++: es macht nicht, was man will, sondern was man programmiert.<br />
Wenn man in zwei Variablen etwas einliest, muss man eben zwei mal etwas eingeben. Und wenn man break in eine Endlosschleife schreibt, wird sie beendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272079</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 18 Nov 2012 16:01:49 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Sun, 18 Nov 2012 18:14:07 GMT]]></title><description><![CDATA[<p>sie soll ja nur beendet werden wenn kein gültiger integerwert eingegeben wurde...</p>
<p>edit: oh das break war falsch....</p>
<pre><code>if (cin &gt;&gt; Instanz.get_eingabe)	{

	Instanz.eingabe();
	Instanz.berechneMinuten();
	Instanz.berechneStunden();
	Instanz.ausgabe();
									}

    else {cout &lt;&lt; &quot;Eingabe beendet. Minuten Total: \n&quot; &lt;&lt; Instanz.minutenTotal() &lt;&lt; endl; 

	break;}
</code></pre>
<p>so .. nun läuft es weiter. aber leider ließt er nur jede zweite zahl ...</p>
<p><a href="http://www.abload.de/img/clipboard-hp4672ozqee.jpg" rel="nofollow">http://www.abload.de/img/clipboard-hp4672ozqee.jpg</a></p>
<p>also liegt das daran weil ich im main() dieses cin für die korrekte abfrage habe und dann nochmal das cin in der methode .. hab jetzt einfach in der methode geschrieben minuten=get_eingabe</p>
<p><strong>dann passt jetzt alle bis auf die total minuten... wahrscheinlich weil ich sie immer =0 setze nach jedem durchlauf .. aber wo initialisier ich sie denn sonst? wenn ich das =0 weglasse, spuckt er immer irgend n rießen zahl aus... MUSS ich das jetzt mit nem konstruktor machen?</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272098</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Sun, 18 Nov 2012 18:14:07 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Tue, 20 Nov 2012 14:00:26 GMT]]></title><description><![CDATA[<p>keiner ne Idee?</p>
<p>Ich müsste es halt evtl außerhalb der Schleife initialisieren..</p>
<p>Aber wie genau schreibt man das dann? Minuten::minutentotal_=0; geht leider nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272767</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Tue, 20 Nov 2012 14:00:26 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Tue, 20 Nov 2012 15:10:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>im Konstruktor der Minuten-Klasse <em>minutentotal_</em> auf Null setzen, in <em>Minuten::eingabe()</em> kannst du dann die aktuell eingegebenen Minuten zu <em>minutentotal_</em> addieren.</p>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272801</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 20 Nov 2012 15:10:30 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Tue, 20 Nov 2012 16:27:02 GMT]]></title><description><![CDATA[<p>ah ok, ich habe es jetzt mit dem Konstruktor versucht und die berechnung zu minutenTotal bei der Methode eingabe() mit bei geschrieben.</p>
<p>aber nach wie vor gibt er mir nicht die gesamtminuten aus sondern nur den zuletzt eingegebenen wert.</p>
<p>ich habe auch einen fehler in der main.cpp. dort wird seit der änderung &quot;Instanz&quot; rot unterstrichen mit der Meldung, dass kein Standardkonstruktor vorhanden sei.</p>
<p>minuten.h</p>
<pre><code>class Minuten {

public:

Minuten(unsigned int minTotal=0);		// Konstruktor

void eingabe();
unsigned int get_eingabe;
unsigned int berechneStunden();
unsigned int berechneMinuten();
void ausgabe();
unsigned int minTotal;

~Minuten();

private:

unsigned int minuten;
</code></pre>
<p>minuten.cpp</p>
<pre><code>Minuten::Minuten(unsigned int minTotal=0)
{}

void Minuten::eingabe()

{ minuten=get_eingabe; 

  minTotal=minTotal+get_eingabe;}

unsigned int Minuten::berechneStunden() 

{return (minuten/60);}

unsigned int Minuten::berechneMinuten()

{return (minuten%60);}

void Minuten::ausgabe()

{ cout &lt;&lt; Minuten::berechneStunden() &lt;&lt; &quot;:&quot; &lt;&lt; setw(2) &lt;&lt; right &lt;&lt; setfill ('0') &lt;&lt; Minuten::berechneMinuten() &lt;&lt;endl; }

Minuten::~Minuten()
{}
</code></pre>
<p>main.cpp</p>
<pre><code>int _tmain(int argc, _TCHAR* argv[])
{

Minuten Instanz;

while(1){

	cout &lt;&lt; &quot;Geben Sie die Zeit in Minuten ein: &quot; &lt;&lt; endl;

	if (cin &gt;&gt; Instanz.get_eingabe)	{

	Instanz.eingabe();
	Instanz.berechneMinuten();
	Instanz.berechneStunden();
	Instanz.ausgabe();
									}

    else {cout &lt;&lt; &quot;Eingabe beendet. Minuten Total: &quot; &lt;&lt; Instanz.minTotal &lt;&lt; endl; 

	break;}

	   }

	system (&quot;PAUSE&quot;);

	return 0;
}
</code></pre>
<p>edit: komisch. jetzt ließ sich das Programm mit &quot;unsigned int minTotal=0&quot; (wie oben) gar nicht mehr starten weil die exe nicht gefunden wurde <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="😕"
    /></p>
<p>habe &quot;unsigned int minTotal=0&quot; gelöscht, compiliert, wieder eingefügt, compliliert und jetzt gehts wieder. Instanz is auch ich mehr rot unterstrichen. Jetzt gibt er mit aber wieder 6546848644 oder so für minutenTotal aus ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272826</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Tue, 20 Nov 2012 16:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Tue, 20 Nov 2012 17:44:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>deine Variable 'minTotal' im Konstruktor ist eine andere als die der Klasseninstanz - du mußt diese erst noch initialisieren:</p>
<pre><code class="language-cpp">Minuten::Minuten(unsigned int minTotal) // der Defaultwert kann hier entfallen, da schon im Header gesetzt
  : minTotal(minTotal) // &lt;- Stichwort &quot;Initialisierungsliste&quot;
{}
</code></pre>
<p>Alternativ kannst (und solltest du vllt. auch <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="😉"
    /> die beiden Variablen unterschiedlich benennen:</p>
<pre><code class="language-cpp">Minuten::Minuten(unsigned int total)
  : minTotal(total) // &lt;- Stichwort &quot;Initialisierungsliste&quot;
{}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2272851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272851</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Tue, 20 Nov 2012 17:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei ersten simplen Programm mit Methoden und Klassen. Letzte frage zu Initialisierung... on Wed, 21 Nov 2012 17:24:33 GMT]]></title><description><![CDATA[<p><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="😕"
    /></p>
<p>wieso auf einmal 2 Variablen?</p>
<p>ich will doch einfach nur einen Wert nach einer Eingabe um diese Eingabe erhöhen.</p>
<p>in c is das doch auch nur eine kleine Codezeile... wieso muss das in c++ alles so kompliziert sein?</p>
<p>ok, wenn ich deins so reinkopiere geht es endlich...</p>
<p>nur die Zeile &quot;: minTotal(minTotal)&quot; ist mir nicht so ganz klar</p>
<p>Ich Initialisiere ↑dadrüber↑ die Variable minTotal, damit keine komischen hohen Zahlen rauskommen. Was genau macht die andere Zeile?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272870</guid><dc:creator><![CDATA[spell]]></dc:creator><pubDate>Wed, 21 Nov 2012 17:24:33 GMT</pubDate></item></channel></rss>