<?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[Fragen zum Klassenbsp]]></title><description><![CDATA[<p>Hallo, ich habe eine Frage bzgl Zuweisungsoperatoren in einem Klassen-Beispiel. Ich werde das ganze Bsp reinkopieren damits keine missverständnisse gibt <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="🙂"
    /><br />
Ich habe die zeilen mit welche ich nicht ganz verstehe mit einem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> markiert. Für einpaar antworten wäre ich wirklich sehr dankbar. lg</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class Zeit
{
    private:
        int m_stunde;      
        int m_minute;      

    public:
        Zeit();                            
        Zeit(int stunde, int minute);     

        int getStunden();
        int getMinuten();
        void setStunden(int);
        void setMinuten(int);
        float getStundenDezimal();

        Zeit operator+=(Zeit);  
        Zeit operator-=(Zeit);  
        Zeit operator+(Zeit);   
        Zeit operator-(Zeit);   
        Zeit operator=(Zeit);   
        bool operator==(Zeit);  
        bool operator&lt;(Zeit);   
        bool operator&gt;(Zeit);     
};

Zeit::Zeit()    
{
    m_stunde = 0;
    m_minute = 0;
}

Zeit::Zeit(int stunde, int minute)      
    m_stunde = stunde;

    if(minute &gt;= 60)                    
        m_stunde += (int) minute/60;    //Soll diese Zeile bedeuten:                  dass m_stunde= m_stunde +  minute/60 ist? 

     m_minute = minute%60;           
    }                                   
    else                                
    {                                   
        m_minute = minute;
    }
}

int Zeit::getStunden() 
{
    return m_stunde;
}

int Zeit::getMinuten()
{
    return m_minute;
}

void Zeit::setStunden(int h)
{
    m_stunde = h;
}

void Zeit::setMinuten(int min)
{
    m_minute = min;

    if(m_minute &gt;= 60)
    {
        :warning:  m_stunde += (int) m_minute/60;   //soll diese Zeile bedeuten:                           m_stunde= m_stunde + m_minute/60?

        m_minute = m_minute % 60;
    }
}

float Zeit::getStundenDezimal()
{
    float zeitDezimal=0;

    zeitDezimal = m_stunde;

    :warning:  zeitDezimal += m_minute / 60;         // zeitDezima= zeitDezimal+m_minute/60? 

 :warning: Zeit Zeit::operator+=(Zeit a)      
{
    m_stunde += a.getStunden(); //        
    m_minute += a.getMinuten(); //Was sollen diese zeilen besagen? 

    if(m_minute &gt;= 60)
    {
        m_stunde += (int) m_minute/60;
        m_minute = m_minute % 60;
    }

    return *this;      
}                      

// Weitere Operatoren zur Übung ------------------------

Zeit Zeit::operator-=(Zeit a)           
    m_stunde -= a.getStunden();
    m_minute -= a.getMinuten();

    if(m_minute &lt;= -60)
    {
        m_stunde -= (int) m_minute/60;
        m_minute = m_minute % 60;
    }

    return *this;
}

Zeit Zeit::operator+(Zeit a)   // Additionsoperator
{
    Zeit tmp;

    tmp.setStunden(m_stunde + a.getStunden());
    tmp.setMinuten(m_minute + a.getMinuten());

    if(tmp.getMinuten() &gt;= 60)
    {
        tmp.setStunden(tmp.getStunden() + (int) tmp.getMinuten()/60);
        tmp.setMinuten(tmp.getMinuten() % 60);
    }

    return tmp;
}

Zeit Zeit::operator-(Zeit a)   // Subtraktionsoperator
{
    Zeit tmp;

    tmp.setStunden(m_stunde - a.getStunden());
    tmp.setMinuten(m_minute - a.getMinuten());

    if(tmp.getMinuten() &lt;= -60)
    {
        tmp.setStunden(tmp.getStunden() - (int) tmp.getMinuten()/60);
        tmp.setMinuten(tmp.getMinuten() % 60);
    }

    return tmp;
}

Zeit Zeit::operator=(Zeit a)   // Zuweisungsoperator
{
    m_stunde = a.getStunden();
    m_minute = a.getMinuten();

    return *this;
}

bool Zeit::operator==(Zeit a)  // Vergleichsoperator
{
    if( (m_stunde == a.getStunden()) &amp;&amp; (m_minute == a.getMinuten()) )
    {
        return true;
    }
    else
    {
        return false;
    }
}

bool Zeit::operator&lt;(Zeit a)   
{
    if( m_stunde &lt; a.getStunden())
    {
        if( m_minute &lt; a.getMinuten())
        {
            return true;
        }
    }

    return false;
}

bool Zeit::operator&gt;(Zeit a)
{
    if( m_stunde &gt; a.getStunden())
    {
        return true;
    }
    else
    {
        if( m_stunde == a.getStunden() )
        {
            if( m_minute &gt; a.getMinuten() )
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
}

// ------ MAIN -----------------------------------------------------------------------------------------------------------

int main(int argc, char *argv[])
{
    Zeit t1(3,30);  // Hier bei der Erstellung werden die entsprechenden Konstruktoren aufgerufen,
    Zeit t2(1,40);  // in diesen Fällen mit 2 Parameter
    Zeit t3(6,30);

    Zeit tmp();     // und Hier der Konstruktor ohne Parameter

    printf(&quot;Probe 1: ------------------------------ \n\n&quot;);

    printf(&quot;%d h %d min\n&quot;, t1.getStunden(), t1.getMinuten());
    printf(&quot;+\n&quot;);
    printf(&quot;%d h %d min\n&quot;, t2.getStunden(), t2.getMinuten());
    printf(&quot;=\n&quot;);

    t1 += t2;      // Hier wird der += Operator aufgerufen -&gt; Andere Schreibweise zur besseren Vorstellung
                   // wäre:    operator+=(t2)  .... Betrifft nun die Methode operator+= des Objektes t1 mit
                   // übergabeparameter t2

    printf(&quot;%d h %d min\n\n&quot;, t1.getStunden(), t1.getMinuten());

    printf(&quot;Probe 2: ------------------------------ \n\n&quot;);

    printf(&quot;%d h %d min\n&quot;, t1.getStunden(), t1.getMinuten());
    printf(&quot;-\n&quot;);
    printf(&quot;%d h %d min\n&quot;, t3.getStunden(), t3.getMinuten());
    printf(&quot;=\n&quot;);

    t1 -= t3;   // Hier dasselbe wie beim += operator

    printf(&quot;%d h %d min\n\n&quot;, t1.getStunden(), t1.getMinuten());

    printf(&quot;Probe 3: ------------------------------ \n\n&quot;);

    t2-=t1;
    t1=t3;
    printf(&quot;t1 = t3\n&quot;);
    printf(&quot;t1: %d h %d min\n&quot;, t1.getStunden(), t1.getMinuten());
    printf(&quot;t3: %d h %d min\n\n&quot;, t3.getStunden(), t3.getMinuten());

    printf(&quot;Probe 4: ------------------------------ \n\n&quot;);

    printf(&quot;t1 &gt; t2\n&quot;);
    printf(&quot;t1: %d h %d min\n&quot;, t1.getStunden(), t1.getMinuten());
    printf(&quot;t2: %d h %d min\n&quot;, t2.getStunden(), t2.getMinuten());

    if(t1 &gt; t2)
    {
        printf(&quot;Wahr\n\n&quot;);
    }
    else
    {
        printf(&quot;Falsch\n\n&quot;);
    }

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>/edit pumuckl: [cpp]-Tags dazu. nächstemal bitte selber machen!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246606/fragen-zum-klassenbsp</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 20:45:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246606.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Jul 2009 11:35:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:37:31 GMT]]></title><description><![CDATA[<p>Hallo, ich habe eine Frage bzgl Zuweisungsoperatoren in einem Klassen-Beispiel. Ich werde das ganze Bsp reinkopieren damits keine missverständnisse gibt <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="🙂"
    /><br />
Ich habe die zeilen mit welche ich nicht ganz verstehe mit einem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> markiert. Für einpaar antworten wäre ich wirklich sehr dankbar. lg</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class Zeit
{
    private:
        int m_stunde;      
        int m_minute;      

    public:
        Zeit();                            
        Zeit(int stunde, int minute);     

        int getStunden();
        int getMinuten();
        void setStunden(int);
        void setMinuten(int);
        float getStundenDezimal();

        Zeit operator+=(Zeit);  
        Zeit operator-=(Zeit);  
        Zeit operator+(Zeit);   
        Zeit operator-(Zeit);   
        Zeit operator=(Zeit);   
        bool operator==(Zeit);  
        bool operator&lt;(Zeit);   
        bool operator&gt;(Zeit);     
};

Zeit::Zeit()    
{
    m_stunde = 0;
    m_minute = 0;
}

Zeit::Zeit(int stunde, int minute)      
    m_stunde = stunde;

    if(minute &gt;= 60)                    
        m_stunde += (int) minute/60;    //Soll diese Zeile bedeuten:                  dass m_stunde= m_stunde +  minute/60 ist? 

     m_minute = minute%60;           
    }                                   
    else                                
    {                                   
        m_minute = minute;
    }
}

int Zeit::getStunden() 
{
    return m_stunde;
}

int Zeit::getMinuten()
{
    return m_minute;
}

void Zeit::setStunden(int h)
{
    m_stunde = h;
}

void Zeit::setMinuten(int min)
{
    m_minute = min;

    if(m_minute &gt;= 60)
    {
        :warning:  m_stunde += (int) m_minute/60;   //soll diese Zeile bedeuten:                           m_stunde= m_stunde + m_minute/60?

        m_minute = m_minute % 60;
    }
}

float Zeit::getStundenDezimal()
{
    float zeitDezimal=0;

    zeitDezimal = m_stunde;

    :warning:  zeitDezimal += m_minute / 60;         // zeitDezima= zeitDezimal+m_minute/60? 

 :warning: Zeit Zeit::operator+=(Zeit a)      
{
    m_stunde += a.getStunden(); //        
    m_minute += a.getMinuten(); //Was sollen diese zeilen besagen? 

    if(m_minute &gt;= 60)
    {
        m_stunde += (int) m_minute/60;
        m_minute = m_minute % 60;
    }

    return *this;      
}                      

// Weitere Operatoren zur Übung ------------------------

Zeit Zeit::operator-=(Zeit a)           
    m_stunde -= a.getStunden();
    m_minute -= a.getMinuten();

    if(m_minute &lt;= -60)
    {
        m_stunde -= (int) m_minute/60;
        m_minute = m_minute % 60;
    }

    return *this;
}

Zeit Zeit::operator+(Zeit a)   // Additionsoperator
{
    Zeit tmp;

    tmp.setStunden(m_stunde + a.getStunden());
    tmp.setMinuten(m_minute + a.getMinuten());

    if(tmp.getMinuten() &gt;= 60)
    {
        tmp.setStunden(tmp.getStunden() + (int) tmp.getMinuten()/60);
        tmp.setMinuten(tmp.getMinuten() % 60);
    }

    return tmp;
}

Zeit Zeit::operator-(Zeit a)   // Subtraktionsoperator
{
    Zeit tmp;

    tmp.setStunden(m_stunde - a.getStunden());
    tmp.setMinuten(m_minute - a.getMinuten());

    if(tmp.getMinuten() &lt;= -60)
    {
        tmp.setStunden(tmp.getStunden() - (int) tmp.getMinuten()/60);
        tmp.setMinuten(tmp.getMinuten() % 60);
    }

    return tmp;
}

Zeit Zeit::operator=(Zeit a)   // Zuweisungsoperator
{
    m_stunde = a.getStunden();
    m_minute = a.getMinuten();

    return *this;
}

bool Zeit::operator==(Zeit a)  // Vergleichsoperator
{
    if( (m_stunde == a.getStunden()) &amp;&amp; (m_minute == a.getMinuten()) )
    {
        return true;
    }
    else
    {
        return false;
    }
}

bool Zeit::operator&lt;(Zeit a)   
{
    if( m_stunde &lt; a.getStunden())
    {
        if( m_minute &lt; a.getMinuten())
        {
            return true;
        }
    }

    return false;
}

bool Zeit::operator&gt;(Zeit a)
{
    if( m_stunde &gt; a.getStunden())
    {
        return true;
    }
    else
    {
        if( m_stunde == a.getStunden() )
        {
            if( m_minute &gt; a.getMinuten() )
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
}

// ------ MAIN -----------------------------------------------------------------------------------------------------------

int main(int argc, char *argv[])
{
    Zeit t1(3,30);  // Hier bei der Erstellung werden die entsprechenden Konstruktoren aufgerufen,
    Zeit t2(1,40);  // in diesen Fällen mit 2 Parameter
    Zeit t3(6,30);

    Zeit tmp();     // und Hier der Konstruktor ohne Parameter

    printf(&quot;Probe 1: ------------------------------ \n\n&quot;);

    printf(&quot;%d h %d min\n&quot;, t1.getStunden(), t1.getMinuten());
    printf(&quot;+\n&quot;);
    printf(&quot;%d h %d min\n&quot;, t2.getStunden(), t2.getMinuten());
    printf(&quot;=\n&quot;);

    t1 += t2;      // Hier wird der += Operator aufgerufen -&gt; Andere Schreibweise zur besseren Vorstellung
                   // wäre:    operator+=(t2)  .... Betrifft nun die Methode operator+= des Objektes t1 mit
                   // übergabeparameter t2

    printf(&quot;%d h %d min\n\n&quot;, t1.getStunden(), t1.getMinuten());

    printf(&quot;Probe 2: ------------------------------ \n\n&quot;);

    printf(&quot;%d h %d min\n&quot;, t1.getStunden(), t1.getMinuten());
    printf(&quot;-\n&quot;);
    printf(&quot;%d h %d min\n&quot;, t3.getStunden(), t3.getMinuten());
    printf(&quot;=\n&quot;);

    t1 -= t3;   // Hier dasselbe wie beim += operator

    printf(&quot;%d h %d min\n\n&quot;, t1.getStunden(), t1.getMinuten());

    printf(&quot;Probe 3: ------------------------------ \n\n&quot;);

    t2-=t1;
    t1=t3;
    printf(&quot;t1 = t3\n&quot;);
    printf(&quot;t1: %d h %d min\n&quot;, t1.getStunden(), t1.getMinuten());
    printf(&quot;t3: %d h %d min\n\n&quot;, t3.getStunden(), t3.getMinuten());

    printf(&quot;Probe 4: ------------------------------ \n\n&quot;);

    printf(&quot;t1 &gt; t2\n&quot;);
    printf(&quot;t1: %d h %d min\n&quot;, t1.getStunden(), t1.getMinuten());
    printf(&quot;t2: %d h %d min\n&quot;, t2.getStunden(), t2.getMinuten());

    if(t1 &gt; t2)
    {
        printf(&quot;Wahr\n\n&quot;);
    }
    else
    {
        printf(&quot;Falsch\n\n&quot;);
    }

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>/edit pumuckl: [cpp]-Tags dazu. nächstemal bitte selber machen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752233</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:37:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 11:52:23 GMT]]></title><description><![CDATA[<p>[cpp]dein Code[/cpp]</p>
<p>macht das ganze leserlicher...</p>
<p>Zu deiner Frage:</p>
<p>Ja, der <code>+=</code> -Operator ist das gleiche wie <code>x = x + y</code> .<br />
Das selbe gilt für <code>-=</code> , <code>*=</code> , <code>/=</code> usw.</p>
<p>Außerdem hat deine Klasse Zeit diesen Operator für sich überladen, damit man auch sowas machen kann:</p>
<pre><code class="language-cpp">Zeit a( 10, 15 );
Zeit b( 3, 50 );

a += b;

// a ist jetzt Zeit( 14, 5 )
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1752247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752247</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Thu, 30 Jul 2009 11:52:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:11:20 GMT]]></title><description><![CDATA[<blockquote>
<p>/edit pumuckl: [cpp]-Tags dazu. nächstemal bitte selber machen!</p>
</blockquote>
<p>Nächstes Mal bitte richtig machen! <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="😉"
    /> <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/1752263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752263</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:18:38 GMT]]></title><description><![CDATA[<p>Hallo, danke für die schnelle antwort.</p>
<p>zwutz schrieb:</p>
<blockquote>
<p>Außerdem hat deine Klasse Zeit diesen Operator für sich überladen, damit man auch sowas machen kann:</p>
<pre><code class="language-cpp">Zeit a( 10, 15 );
Zeit b( 3, 50 );

a += b;

// a ist jetzt Zeit( 14, 5 )
</code></pre>
</blockquote>
<pre><code class="language-cpp">Zeit Zeit::operator+=(Zeit a) //Zeile 1
{
m_stunde += a.getStunden();   // Zeile 2
m_minute += a.getMinuten();  // Zeile 3
</code></pre>
<p>Ich muss ehrlich sagen, zeile 1 verstehe ich überhaupt nicht. <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="😞"
    /> Ich kann mir nichts darunter vorstellen. zeit is ja die klasse, aber den rest ...<br />
könntst es vielleicht genauer erklären, wenn möglich? danke</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752270</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:32:03 GMT]]></title><description><![CDATA[<p>Du musst einfach nur wissen, dass Operatoren im Grunde auch nichts anderes als Funktionen sind. In dem Fall gehts sozusagen um die Funktion 'operator+='. Dann dürfte der Rest eigentlich klar sein, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752286</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:32:03 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:34:47 GMT]]></title><description><![CDATA[<p>soll es etwa heissen:</p>
<p>Zeit Zeit::operator+=(Zeit a) ====&gt; Zeit= Zeit+ Zeit a?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752293</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:34:47 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:41:38 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<blockquote>
<p>/edit pumuckl: [cpp]-Tags dazu. nächstemal bitte selber machen!</p>
</blockquote>
<p>Nächstes Mal bitte richtig machen! <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="😉"
    /> <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>
</blockquote>
<p>Done <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22852">@N5803</a>: schau dir im Buch/Tutorial deiner Wahl einfach mal an was der operator+= für die eingebauten Datentypen macht. Das Verhalten dürfte (bzw. sollte) hier ähnlich sein.<br />
Dann sollte im gleichen Buch/Tutorial stehen wie man Operatoren überlädt.<br />
Im Magazin gibts zu dem Thema auch einen <a href="http://magazin.c-plusplus.net/artikel/%DCberladung%20von%20Operatoren%20in%20CPlusPlus%20%28Teil%201%29" rel="nofollow">Artikel</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752304</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:47:20 GMT]]></title><description><![CDATA[<p>ok danke nochmal. ich werd mal schnell die liste durchlesen.</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752316</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:47:20 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:48:18 GMT]]></title><description><![CDATA[<p>sry, vergessen f5 zu drücken : D</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752317</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:48:18 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Thu, 30 Jul 2009 12:47:57 GMT]]></title><description><![CDATA[<p>N5803 schrieb:</p>
<blockquote>
<p>soll es etwa heissen:</p>
<p>Zeit Zeit::operator+=(Zeit a) ====&gt; Zeit= Zeit+ Zeit a?</p>
</blockquote>
<p>genau</p>
<p>die Operatoren sind nur Funktionen, nichts anderes.</p>
<p>hast du also wie in meinem Beispiel zwei Zeit-Objekte a und b und führst folgende Operation aus:</p>
<pre><code class="language-cpp">a += b;
</code></pre>
<p>ist das für den Compiler das gleiche, als würdest du das schreiben:</p>
<pre><code class="language-cpp">a.operator+=(b)
</code></pre>
<p>damit dürfte die Sache klarer werden</p>
<p>nochmal an Zeile 1:</p>
<pre><code class="language-cpp">Zeit Zeit::operator+=(Zeit a)
</code></pre>
<p>eigentlich sollte sie so aussehen:</p>
<pre><code class="language-cpp">Zeit&amp; Zeit::operator+=(const Zeit&amp; a)
</code></pre>
<p>es geht zwar beides, aber letzteres erspart ein wenig Zeit, da die Objekte nicht kopiert werden müssen.</p>
<p>Die Funktion liefert eine Referenz auf ein Zeit-Objekt zurück. Üblicherweise wird dazu <code>return *this;</code> verwendet (wie in deinem Beispiel auch). Also das aufgerufene Objekt gibt sich selbst zurück.<br />
Damit ist dann auch sowas möglich:</p>
<pre><code class="language-cpp">Zeit a,b,c;

a += b += c;
</code></pre>
<p>ausführlich also das gleich wie das:</p>
<pre><code class="language-cpp">b = b + c;
a = a + b;
</code></pre>
<p>ansonsten siehe Rotschopf, äh, Pumuckl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1752318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1752318</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Thu, 30 Jul 2009 12:47:57 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Fri, 31 Jul 2009 14:49:55 GMT]]></title><description><![CDATA[<p>alles klar <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="🙂"
    /> danke für die genaue erklärung. Ich habe sowieso aus der einen Liste nichts anderes rauslesen können <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>
<p>glg <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/1753043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1753043</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Fri, 31 Jul 2009 14:49:55 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Sat, 01 Aug 2009 15:30:48 GMT]]></title><description><![CDATA[<p>moin moin, hoffe da kann jmd helfen: also ich habe hier ein eigenes klassen-bsp nur bekomme ich immer wieder diese fehlermeldung:<br />
<strong>[Linker error] undefined reference to `Rational::Rational()'</strong></p>
<p>Hier ist der Code, wäre sehr dankbar für jede Hilfe.</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

class Rational 
{
   int m_zaehler;
   int m_nenner;

   void kuerzen(float);

public:    

    int getZaehler();
    int getNenner();
    void setZaehler(int);
    void setNenner(int);

     Rational();

      Rational operator+(Rational);
    Rational operator-(Rational);
    Rational operator*(Rational);
    Rational operator/(Rational);

    void print();

};

void Rational::setZaehler(int z)
{
  m_zaehler=z;  
}

void Rational::setNenner(int n)
{
 m_nenner=n;   
}

int Rational::getNenner()
{
    return m_nenner;   
}

int Rational::getZaehler()
{
    return m_zaehler;   
}

//HIER KÜRZEN FUNKTION

Rational Rational::operator+(Rational p)
{
     Rational tmp;

     tmp.setNenner(m_nenner * p.getZaehler() + m_zaehler * p.getNenner());
     tmp.setZaehler(m_nenner * p.getNenner());

     return tmp;
}

Rational Rational::operator-(Rational p)
{
    Rational tmp;

    tmp.setZaehler(m_nenner * p.getZaehler() - m_zaehler * p.getNenner());     
    tmp.setNenner(m_nenner * p.getNenner());

    return tmp;
}

Rational Rational::operator*(Rational p)
{
         Rational tmp;

         tmp.setZaehler(m_zaehler * p.getZaehler());
         tmp.setNenner(m_nenner * p.getNenner());

         return tmp;
}

Rational Rational::operator/(Rational p)
{
 Rational tmp;

 if(p.getNenner()==0)
 {
  printf(&quot;Nur Chuck Norris kann durch 0 dividieren \n&quot;);
  //cout&lt;&lt;&quot;Nur Chuck Norris kann durch 0 dividieren \n&quot;&lt;&lt;endl;
  return *this;
  }
  else
  {
 tmp.setZaehler(m_nenner * p.getZaehler());
 tmp.setNenner(m_zaehler * p.getNenner());
 return tmp; 
 }       

}

void Rational::print()
{
      if(m_nenner != 1)
      {
                  printf(&quot;%d  \n&quot;,m_zaehler); 
                  //cout&lt;&lt;&quot;  \n&quot;&lt;&lt;m_zaehler;
                  printf(&quot;--\n&quot;);
                  //cout&lt;&lt;&quot;--\n&quot;&lt;&lt;endl;
                  //cout&lt;&lt;&quot;  \n&quot;&lt;&lt;m_nenner;
                  printf(&quot;%d  \n&quot;, m_nenner);
      }           
      else
      {
          printf(&quot;%d  \n&quot;,m_zaehler);
        // cout&lt;&lt;&quot;  \n&quot;&lt;&lt;m_zaehler;    
      }

}  

using namespace std;

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

    Rational r1, r2, r3, r4;
    //Rational erg1, erg2, erg3, erg4;

    r1.setZaehler(3);
    r1.setNenner(4);

    r2.setZaehler(2);
    r2.setNenner(8);

    r3.setZaehler(1);
    r3.setNenner(2);

    r4.setZaehler(7);
    r4.setNenner(1);

    r1.print();
    r2.print();
    r3.print();
    r4.print();

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1753590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1753590</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Sat, 01 Aug 2009 15:30:48 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Sat, 01 Aug 2009 15:43:04 GMT]]></title><description><![CDATA[<p>Lösche mal Zeile 25. Da deklarierst du einen Konstruktor, den du gar nicht definierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1753599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1753599</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Sat, 01 Aug 2009 15:43:04 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Sat, 01 Aug 2009 17:28:42 GMT]]></title><description><![CDATA[<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="😃"
    /> es funzt <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="🙂"
    /> Danke!!!</p>
<p>Eine Frage: Wann brauch ich einen Constructor und wann nicht und wie kann ich (in meinem bsp z.b.) den constructor anwenden.</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1753652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1753652</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Sat, 01 Aug 2009 17:28:42 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Sat, 01 Aug 2009 22:32:14 GMT]]></title><description><![CDATA[<p>Man definiert einen eigenen Konstruktor, wenn man Variablen initialisieren will und vielleicht dem Erzeuger der Klasseninstanz die Möglichkeit geben will, zu diesem Zweck Parameter zu übergeben. Du solltest dir am besten mal ein C++-Anfänger-Tutorial reinziehen, da werden solche Dinge detailliert erläutert. <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/1753805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1753805</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Sat, 01 Aug 2009 22:32:14 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Mon, 03 Aug 2009 08:48:03 GMT]]></title><description><![CDATA[<p>hallöle, hab in 10 min info prüfung. könnte mir jmd vielleicht etwas behilflich sein? wäre echt super danke. <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/1754393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1754393</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Mon, 03 Aug 2009 08:48:03 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Mon, 03 Aug 2009 08:52:59 GMT]]></title><description><![CDATA[<p>N5803 schrieb:</p>
<blockquote>
<p>hallöle, hab in 10 min info prüfung. könnte mir jmd vielleicht etwas behilflich sein? wäre echt super danke. <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>
</blockquote>
<p>Ich drück dir die Daumen <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="🙂"
    /><br />
Viel mehr kann man da nicht helfen <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/1754398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1754398</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 03 Aug 2009 08:52:59 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Mon, 03 Aug 2009 08:57:45 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>N5803 schrieb:</p>
<blockquote>
<p>hallöle, hab in 10 min info prüfung. könnte mir jmd vielleicht etwas behilflich sein? wäre echt super danke. <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>
</blockquote>
<p>Ich drück dir die Daumen <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="🙂"
    /><br />
Viel mehr kann man da nicht helfen <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>hmmmm <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="🙄"
    /> vielleicht etwas fachliche hilfe noch dazu? <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/1754404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1754404</guid><dc:creator><![CDATA[N5803]]></dc:creator><pubDate>Mon, 03 Aug 2009 08:57:45 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zum Klassenbsp on Mon, 03 Aug 2009 09:02:46 GMT]]></title><description><![CDATA[<p>N5803 schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Viel mehr kann man da nicht helfen <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>hmmmm <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="🙄"
    /> vielleicht etwas fachliche hilfe noch dazu? <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>
</blockquote>
<p>Das Forum soll dir beim Lernen helfen, nicht beim Bescheißen. Wir machen keine Hausaufgaben, es gibt keine Komplettlösungen - und Klausurhilfe daher schonmal garnicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1754405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1754405</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 03 Aug 2009 09:02:46 GMT</pubDate></item></channel></rss>