<?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[[Anfänger] Startschwierigkeiten mit eigener &amp;quot;BigNum&amp;quot; Klasse]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe vor Kurzem angefangen, mich mit Klassen zu beschäftigen. Daher kann ich außer &quot;Auto Klassen&quot; nicht viel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Zur Übung wollte ich jetzt eine Klasse schreiben, die mit sehr großen Zahlen rechnen kann. Später sollen dann zB. auch die Operatoren überladen werden, damit man mit der Klasse wie mit den integrierten Typen rechnen kann.<br />
Das ganze soll im Prinzip so ablaufen, dass die Zahlen in arrays bzw. Vectoren gespeichert werden, zB:</p>
<pre><code>bignum=12345;
ist dann gleichbedeutend mit
unsigned short arr[5] = { 1,2,3,4,5} ;
</code></pre>
<p>Das erste Problem ergibt sich jetzt bei der initialisierung von bignum.<br />
Im Moment lese ich den Wert von bignum als string ein</p>
<pre><code class="language-cpp">#include &lt;string&gt;

class bignum
{
   private:
    std::string number;

   public:
    bignum ( const char* zahl)
    {
        number=zahl;
    }
};

int main()
{
    bignum b=&quot;10000000000000000000000000&quot;;
    return 0;
}
</code></pre>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox2005" checked="true" /><label for="checkbox2005">);</label></div><br />
Allerdings muss der Benutzer ja dann immer die Anführungszeichen mitschreiben.</p>
<p>Kann man den Konstruktor auch so umschreiben, dass der Benutzer - wie bei den integrierten Typen - den Wert von bignum ohne Anführungszeichen schreiben kann? zB:</p>
<pre><code>bignum=100000000000000000000;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/233639/anfänger-startschwierigkeiten-mit-eigener-quot-bignum-quot-klasse</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 19:16:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233639.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Feb 2009 20:32:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Anfänger] Startschwierigkeiten mit eigener &amp;quot;BigNum&amp;quot; Klasse on Fri, 06 Feb 2009 20:32:37 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe vor Kurzem angefangen, mich mit Klassen zu beschäftigen. Daher kann ich außer &quot;Auto Klassen&quot; nicht viel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Zur Übung wollte ich jetzt eine Klasse schreiben, die mit sehr großen Zahlen rechnen kann. Später sollen dann zB. auch die Operatoren überladen werden, damit man mit der Klasse wie mit den integrierten Typen rechnen kann.<br />
Das ganze soll im Prinzip so ablaufen, dass die Zahlen in arrays bzw. Vectoren gespeichert werden, zB:</p>
<pre><code>bignum=12345;
ist dann gleichbedeutend mit
unsigned short arr[5] = { 1,2,3,4,5} ;
</code></pre>
<p>Das erste Problem ergibt sich jetzt bei der initialisierung von bignum.<br />
Im Moment lese ich den Wert von bignum als string ein</p>
<pre><code class="language-cpp">#include &lt;string&gt;

class bignum
{
   private:
    std::string number;

   public:
    bignum ( const char* zahl)
    {
        number=zahl;
    }
};

int main()
{
    bignum b=&quot;10000000000000000000000000&quot;;
    return 0;
}
</code></pre>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox2005" checked="true" /><label for="checkbox2005">);</label></div><br />
Allerdings muss der Benutzer ja dann immer die Anführungszeichen mitschreiben.</p>
<p>Kann man den Konstruktor auch so umschreiben, dass der Benutzer - wie bei den integrierten Typen - den Wert von bignum ohne Anführungszeichen schreiben kann? zB:</p>
<pre><code>bignum=100000000000000000000;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1659294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659294</guid><dc:creator><![CDATA[bignum]]></dc:creator><pubDate>Fri, 06 Feb 2009 20:32:37 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfänger] Startschwierigkeiten mit eigener &amp;quot;BigNum&amp;quot; Klasse on Fri, 06 Feb 2009 20:52:23 GMT]]></title><description><![CDATA[<p>Wenn es gehen würde, dann wäre die Zahl ja von einem bereits 'integrierten' Datentyp...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659301</guid><dc:creator><![CDATA[noe_noe]]></dc:creator><pubDate>Fri, 06 Feb 2009 20:52:23 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfänger] Startschwierigkeiten mit eigener &amp;quot;BigNum&amp;quot; Klasse on Fri, 06 Feb 2009 20:53:08 GMT]]></title><description><![CDATA[<p>bignum schrieb:</p>
<blockquote>
<p>Kann man den Konstruktor auch so umschreiben, dass der Benutzer - wie bei den integrierten Typen - den Wert von bignum ohne Anführungszeichen schreiben kann? zB:</p>
<pre><code>bignum=100000000000000000000;
</code></pre>
</blockquote>
<p>nein, das geht nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659302</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 06 Feb 2009 20:53:08 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfänger] Startschwierigkeiten mit eigener &amp;quot;BigNum&amp;quot; Klasse on Fri, 06 Feb 2009 21:13:44 GMT]]></title><description><![CDATA[<p>ok, schade<br />
dann bleib ich bei den strings</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659314</guid><dc:creator><![CDATA[bignum]]></dc:creator><pubDate>Fri, 06 Feb 2009 21:13:44 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfänger] Startschwierigkeiten mit eigener &amp;quot;BigNum&amp;quot; Klasse on Fri, 06 Feb 2009 22:14:24 GMT]]></title><description><![CDATA[<p>Auch wenn man mich jetzt dafür steinigen wird, möchte ich die Möglichkeit doch noch erwähnt haben. <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>Du kannst die Anführungszeichen weglassen, indem du zu Makros greifst (dafür kommen halt Klammern an die Stelle):</p>
<pre><code class="language-cpp">#define BIGNUM(VAR) #VAR

bignum a = BIGNUM(242352352234112312321455323);
</code></pre>
<p>Intern funktioniert das ganze trotzdem mit Strings, der #-Operator macht einen String aus der Zahl. Sehr sauber ist es wie angetönt nicht, aber wenn die Anführungszeichen so schlimm für dich sind... <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>
<p>P.S. Dein Ansatz für eine grosse Klasse ist zwar gut, um neue Dinge wie Operatorüberladung zu lernen, aber damit wirklich arbeiten solltest du vielleicht besser nicht. Es gibt unter gewissen Systemen auch den 64-Bit-Datentyp <code>long long</code> bzw. <code>__int64</code> , ansonsten gibt es einige Bibliotheken für sehr grosse Integer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659344</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 06 Feb 2009 22:14:24 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfänger] Startschwierigkeiten mit eigener &amp;quot;BigNum&amp;quot; Klasse on Sat, 07 Feb 2009 01:13:45 GMT]]></title><description><![CDATA[<p>Auf Performance/Nutzbarkeit kommt es wirklich nicht an <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 habs nur satt, ständig mit Klassen à la</p>
<pre><code class="language-cpp">class auto
{
   int tueren;
   int PS;
   //usw
};
</code></pre>
<p>zu arbeiten. Und dass man die Zahlen mit Anführungszeichen eingibt stört mich nicht wirklich. Ich dachte, vielleicht gibts nen (unkomplizieren/sauberen) Weg, das ganze ohne zu machen.<br />
Aber das ist echt ne gute Übung! Im Moment funktioniert schon Addition und Pre/Post Incrementation <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/1659388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659388</guid><dc:creator><![CDATA[bignum]]></dc:creator><pubDate>Sat, 07 Feb 2009 01:13:45 GMT</pubDate></item></channel></rss>