<?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[rational]]></title><description><![CDATA[<p>hallo, ich hab nur ein kleines problem (für Leute die es mit C++ drauf haben, aber grosses für mich). Ich bekomme nicht hin mit Überladen. Iverzweifele an der sache.ich soll:<br />
&quot;Schreiben Sie auch eine private Hilfsfunktion zum Kürzen der Brüche. Rufen Sie diese Funktion nach jeder Operation auf, so dass das Ergebnis immer gekürzt ist. Beachten Sie, daß alle Funktionen jeweils nur ein Argument übergeben bekommt, da die andere Zahl die der aufgerufenen Klasse ist.... wie gesagt es fehlt an überladen<br />
kann jemand bitte ...dringend helfen....</p>
<p>meih Header datei:</p>
<pre><code class="language-cpp">// ratio.h
// Klasse für rationale Zahlen
#ifndef ratio_h
#define ratio_h
#include &lt;iostream&gt;
using namespace std;

class rational
{

      public:
             rational()
             : zaehler(1), nenner(1)
             {}
             rational (long);

             // Abfrage inline
             long Zaehler () const {return zaehler;}
             long Nenner () const {return nenner;}

            void add(rational a, rational b);
            void sub(rational a, rational b);
            void mult(rational a, rational b);
            void div(rational z, rational n);

            void definiere(long zaehler, long nenner);
            void eingabe();
            void ausgabe() const;
            void kehrwert();
            Rational operator+(int);

      private:
               void kuerzen();
               friend rational operator+(rational, rational);
               long zaehler, nenner;

    };
    #endif
</code></pre>
<pre><code class="language-cpp">// ratio.cpp
#include&quot;ratio.h&quot;
#include&lt;iostream&gt;
#include&lt;assert.h&gt;

rational::rational(long ganz)       // Typumwandlungskonstruktor
{
    zaehler = ganz;
    nenner = 1;
                        }

Rational Rational::operator+(int summand){
        Rational ergebnis;
    ergebnis.zaehler= zaehler + summand*nenner;
    ergebnis.nenner=nenner;
    ergebnis.Kuerze();
    return ergebnis;
}
</code></pre>
<p>danke in vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258611/rational</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 04:57:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258611.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jan 2010 19:15:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to rational on Tue, 12 Jan 2010 19:15:10 GMT]]></title><description><![CDATA[<p>hallo, ich hab nur ein kleines problem (für Leute die es mit C++ drauf haben, aber grosses für mich). Ich bekomme nicht hin mit Überladen. Iverzweifele an der sache.ich soll:<br />
&quot;Schreiben Sie auch eine private Hilfsfunktion zum Kürzen der Brüche. Rufen Sie diese Funktion nach jeder Operation auf, so dass das Ergebnis immer gekürzt ist. Beachten Sie, daß alle Funktionen jeweils nur ein Argument übergeben bekommt, da die andere Zahl die der aufgerufenen Klasse ist.... wie gesagt es fehlt an überladen<br />
kann jemand bitte ...dringend helfen....</p>
<p>meih Header datei:</p>
<pre><code class="language-cpp">// ratio.h
// Klasse für rationale Zahlen
#ifndef ratio_h
#define ratio_h
#include &lt;iostream&gt;
using namespace std;

class rational
{

      public:
             rational()
             : zaehler(1), nenner(1)
             {}
             rational (long);

             // Abfrage inline
             long Zaehler () const {return zaehler;}
             long Nenner () const {return nenner;}

            void add(rational a, rational b);
            void sub(rational a, rational b);
            void mult(rational a, rational b);
            void div(rational z, rational n);

            void definiere(long zaehler, long nenner);
            void eingabe();
            void ausgabe() const;
            void kehrwert();
            Rational operator+(int);

      private:
               void kuerzen();
               friend rational operator+(rational, rational);
               long zaehler, nenner;

    };
    #endif
</code></pre>
<pre><code class="language-cpp">// ratio.cpp
#include&quot;ratio.h&quot;
#include&lt;iostream&gt;
#include&lt;assert.h&gt;

rational::rational(long ganz)       // Typumwandlungskonstruktor
{
    zaehler = ganz;
    nenner = 1;
                        }

Rational Rational::operator+(int summand){
        Rational ergebnis;
    ergebnis.zaehler= zaehler + summand*nenner;
    ergebnis.nenner=nenner;
    ergebnis.Kuerze();
    return ergebnis;
}
</code></pre>
<p>danke in vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837812</guid><dc:creator><![CDATA[ratonalistin]]></dc:creator><pubDate>Tue, 12 Jan 2010 19:15:10 GMT</pubDate></item><item><title><![CDATA[Reply to rational on Tue, 12 Jan 2010 19:30:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Rational operator+(int);   // Du schreibst hier Rational groß, ansonsten klein.

// ...

friend rational operator+(rational, rational); // Diese Funktion definierst du später nirgendwo.

// ...

Rational Rational::operator+(int summand){  // Wieder Groß- und Kleinschreibung
        Rational ergebnis;                  // dito

// ...

    ergebnis.Kuerze();                      // schon wieder!
</code></pre>
<p>Außerdem noch ein paar Kleinigkeiten:</p>
<pre><code class="language-cpp">using namespace std; // keine so gute Idee in einem Header

#include&lt;assert.h&gt;  // Der heißt jetzt cassert. Außerdem verwendest du nichts daraus
</code></pre>
<p>Allgemein: Üblicherweise würde man + über += definieren, aber versuch lieber erstmal nur den + hin zu bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837818</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 12 Jan 2010 19:30:44 GMT</pubDate></item></channel></rss>