<?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[unerklärlich...]]></title><description><![CDATA[<p>Hallo,</p>
<p>etwas, was für mich unerklärlich ist und das Programm zum Absturz bringt:<br />
Ich habe 4 Klassen:<br />
`   - Point</p>
<ul>
<li>
<p>Style</p>
</li>
<li>
<p>ElementB( erbt von Style )</p>
</li>
<li>
<p>ElementA( erbt von Style )`</p>
</li>
</ul>
<p>Ungefährer Aufbau der Klassen:</p>
<pre><code class="language-cpp">struct Point
{
   double x;
   double y;

   Point( double xy = 0 ) : x( xy ), y( xy ) {};
   Point( double nx, double ny ) : x( nx ), y( ny ) {};
   Point( const Point &amp;xy ) : x( xy.x ), y( xy.y ) {};
   ~Point( ) {}
   Point&amp; operator=( const Point &amp;xy )
   {
      this-&gt;x = xy.x;
      this-&gt;y = xy.y;
   }
   Point&amp; operator=( double xy )
   {
      this-&gt;x = xy;
      this-&gt;y = xy;
   }

   //...
};

class Style
{
   private:
      Point size;

   public:
      Style( )
      {
         this-&gt;setDefault();
      }
      void setDefault()
      {
         this-&gt;size = 0;
      }
      bool setSize( const Point &amp;newSize )
      {
         if( newSize.x == 0  ||  newSize.y == 0 ) return false;
         this-&gt;size = newSize;
         return true;
      }
      bool setSize( double newX, double newY )
      {
         return this-&gt;setSize( Point( newX, newY ) );
      }

      //...
};

class ElementB : public Style { /*...*/ };

class ElementA : public Style
{
   private:
      ElementB *elem;

   public:
      void draw()
      {
         Point s( 9.0, 11.0 );
         this-&gt;elem-&gt;setSize( 15.0, 23.0 ); //Funktioniert!
         this-&gt;elem-&gt;setSize( s ); //Programm stürtzt ab!
      }
};
</code></pre>
<p>An der Stelle, an der ich setSize ein Point-Objekt übergebe, anstatt zwei double-Werte, gibts nen Programmabsturz. Aber wieso?<br />
Was muss ich machen, damit beides( <code>setSize( double,double), setSize( Point )</code> ) funktioniert?</p>
<p>MfG. Ich</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/259450/unerklärlich</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 21:14:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259450.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Jan 2010 11:22:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 11:22:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>etwas, was für mich unerklärlich ist und das Programm zum Absturz bringt:<br />
Ich habe 4 Klassen:<br />
`   - Point</p>
<ul>
<li>
<p>Style</p>
</li>
<li>
<p>ElementB( erbt von Style )</p>
</li>
<li>
<p>ElementA( erbt von Style )`</p>
</li>
</ul>
<p>Ungefährer Aufbau der Klassen:</p>
<pre><code class="language-cpp">struct Point
{
   double x;
   double y;

   Point( double xy = 0 ) : x( xy ), y( xy ) {};
   Point( double nx, double ny ) : x( nx ), y( ny ) {};
   Point( const Point &amp;xy ) : x( xy.x ), y( xy.y ) {};
   ~Point( ) {}
   Point&amp; operator=( const Point &amp;xy )
   {
      this-&gt;x = xy.x;
      this-&gt;y = xy.y;
   }
   Point&amp; operator=( double xy )
   {
      this-&gt;x = xy;
      this-&gt;y = xy;
   }

   //...
};

class Style
{
   private:
      Point size;

   public:
      Style( )
      {
         this-&gt;setDefault();
      }
      void setDefault()
      {
         this-&gt;size = 0;
      }
      bool setSize( const Point &amp;newSize )
      {
         if( newSize.x == 0  ||  newSize.y == 0 ) return false;
         this-&gt;size = newSize;
         return true;
      }
      bool setSize( double newX, double newY )
      {
         return this-&gt;setSize( Point( newX, newY ) );
      }

      //...
};

class ElementB : public Style { /*...*/ };

class ElementA : public Style
{
   private:
      ElementB *elem;

   public:
      void draw()
      {
         Point s( 9.0, 11.0 );
         this-&gt;elem-&gt;setSize( 15.0, 23.0 ); //Funktioniert!
         this-&gt;elem-&gt;setSize( s ); //Programm stürtzt ab!
      }
};
</code></pre>
<p>An der Stelle, an der ich setSize ein Point-Objekt übergebe, anstatt zwei double-Werte, gibts nen Programmabsturz. Aber wieso?<br />
Was muss ich machen, damit beides( <code>setSize( double,double), setSize( Point )</code> ) funktioniert?</p>
<p>MfG. Ich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843622</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Sat, 23 Jan 2010 11:22:58 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 11:31:46 GMT]]></title><description><![CDATA[<p>Ich hätte gesagt, ElementB* elem ist noch nicht initialisiert, elem zeigt irgendwo hin.<br />
Aber wenn die erste Zeile funktioniert, kann das ja eigentlich nicht sein (außer der Code stimmt so nicht, wie du ihn gepostet hast).<br />
Kannst du mal hergehen und deinen originalen Code so weit reduzieren, dass das Problem ersichtlich ist und man es 1:1 übernehemen und kompilieren kann, sonst kann man da nichts weiter zu sagen. (Meine Glaskugel hat am Wochenende frei :p)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843624</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sat, 23 Jan 2010 11:31:46 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 11:31:47 GMT]]></title><description><![CDATA[<p>Worauf zeigt denn <code>elem</code> ? Ist es ein gültiges ElementB Objekt? Kannst du uns ein <strong>minimales</strong> Beispiel zeigen, wo der Absturz reproduziert wird?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843625</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 23 Jan 2010 11:31:47 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 11:32:53 GMT]]></title><description><![CDATA[<p>l'abra d'or schrieb:</p>
<blockquote>
<p>Aber wenn die erste Zeile funktioniert, kann das ja eigentlich nicht sein (außer der Code stimmt so nicht, wie du ihn gepostet hast).</p>
</blockquote>
<p>Bei undefined behavior ist ALLES möglich, daher kann man davon nicht ausgehen <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843627</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 23 Jan 2010 11:32:53 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 12:08:26 GMT]]></title><description><![CDATA[<p>Aaalso ... das Problem ist in meiner GUI. Diese GUI benutzt Allegro. Die &quot;Problem-Dateien&quot; lade ich gleich mal hoch.</p>
<p>Und: Im Konstruktor eines jeden Elementes werden benutzte Elemente auch erzeugt. Im Beispiel würde <code>elem</code> also auf ein ElementB-Objekt zeigen.<br />
Dass <code>elem</code> auf nichts zeigt ist sowieso ausgeschlossen, da</p>
<pre><code class="language-cpp">this-&gt;elem-&gt;setSize( 6, 7 );
</code></pre>
<p>ja prima funktioniert.</p>
<p>Benutzt ein Element ein anderes ist der Konstrukor in etwa so:</p>
<pre><code class="language-cpp">Element::Element( )
   : elem( NULL )
{
   this-&gt;elem = new ElementB( ... );
}
</code></pre>
<p>Ich such mal was raus und lad's hoch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843638</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Sat, 23 Jan 2010 12:08:26 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 12:15:28 GMT]]></title><description><![CDATA[<p>ChristophLu schrieb:</p>
<blockquote>
<p>Die &quot;Problem-Dateien&quot; lade ich gleich mal hoch.</p>
</blockquote>
<p>Hochladen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Was verstehst du nicht an MINIMAL? Mach ein kurzes einfaches Beispielprogramm, welches dein Problem repräsentiert und den Fehler reproduziert. Es wird hier niemand deine Quellcodedateien durchschauen und sich dann noch selber ein Beispielprogramm schreiben.</p>
<p>ChristophLu schrieb:</p>
<blockquote>
<p>Dass <code>elem</code> auf nichts zeigt ist sowieso ausgeschlossen, da</p>
<pre><code class="language-cpp">this-&gt;elem-&gt;setSize( 6, 7 );
</code></pre>
<p>ja prima funktioniert.</p>
</blockquote>
<p>Nein, es ist nicht ausgeschlossen. Es wäre undefined behavior, da ist alles möglich. Es darf funktionieren, es darf nicht funktionieren, es darf die Welt untergehen, es kann dein Computer explodieren, es ist halt einfach nicht definiert, was passieren wird.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843643</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 23 Jan 2010 12:15:28 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 12:20:53 GMT]]></title><description><![CDATA[<p>So ...</p>
<p>Die betreffenden Zeilen sind: Counter.cpp.txt-&gt; Zeile 107 und 111</p>
<p><a href="http://home.arcor.de/minicrispie/Problem/" rel="nofollow">http://home.arcor.de/minicrispie/Problem/</a></p>
<p>Ich hoffe, das hilft weiter oO</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843646</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Sat, 23 Jan 2010 12:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 12:34:09 GMT]]></title><description><![CDATA[<p>ChristophLu schrieb:</p>
<blockquote>
<p>So ...</p>
<p>Die betreffenden Zeilen sind: Counter.cpp.txt-&gt; Zeile 107 und 111</p>
<p><a href="http://home.arcor.de/minicrispie/Problem/" rel="nofollow">http://home.arcor.de/minicrispie/Problem/</a></p>
<p>Ich hoffe, das hilft weiter oO</p>
</blockquote>
<p>MINIMAL-Beispiel!!!!111einself<br />
glaub nicht, dass sich hier wer den gesamten code angucken möchte (btw finde ich kommentare wie END OF FILE nicht gerade zweckmäßig)<br />
außerdem hat man dort auch kein syntax-highliting -&gt; post es halt hier - du kannst es danach noch immer rauseditieren, wenn dir so ist.<br />
btw. was haben 2 buttons mit nem counter zu tun? komplett fail sind auch die default-werte für die positionen. ne gleitkommazahl zu nehmen ist auch nicht so extrem klug, weil sie eben nicht sonderlich genau ist - können also durchaus mal nen paar mehr oder weniger steps sein(und wenns ganz dumm läuft, dann auch unendlich viele)... viel mehr hab ich mir aber nicht angeguckt...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843662</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 23 Jan 2010 12:34:09 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 12:34:10 GMT]]></title><description><![CDATA[<p>Ich kann dir ein minimiertes Beispiel geben, nur das wird dir nicht helfen, da das funktioniert. Unter anderem deswegen nannte ich diesen Thread &quot;unerklärlich...&quot;</p>
<p>Aber wenn du ein funkionierendes Beispiel willst, bitte:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Point
{
	public:
		double x;
		double y;

		Point( double xy = 0 ) : x( xy ), y( xy ) {}
		Point( double nx, double ny ) : x( nx ), y( ny ) {}
		Point( const Point &amp;p ) : x( p.x ), y( p.y ) {}
		~Point( ) {}

		Point&amp; operator=( double xy )
		{
			this-&gt;x = xy;
			this-&gt;y = xy;
			return *this;
		}
};

class Style
{
	protected:
		Point size;

	public:
		Style( )
		{
			this-&gt;reset();
		}
		~Style( ) {}
		void reset()
		{
			this-&gt;size = 10;
		}
		bool setSize( const Point &amp;newSize )
		{
			if( newSize.x == 0  ||  newSize.y == 0 ) return false;
			this-&gt;size = newSize;
			return true;
		}
		bool setSize( double x, double y )
		{
			return this-&gt;setSize( Point( x, y ) );
		}
};

class ElementA : public Style
{
	public:
		ElementA( )
			: Style()
		{};
		~ElementA( ) {}
};

class ElementB : public Style
{
	private:
		ElementA *elem;

	public:
		ElementB( )
			: Style(), elem( NULL )
		{
			this-&gt;elem = new ElementA();
		}
		~ElementB( ) {}

		void draw( )
		{
			Point s( 2, 3 );
			this-&gt;elem-&gt;setSize( s ); //Funktioniert
			this-&gt;elem-&gt;setSize( 15, 23 ); //Funktioniert ebenfalls
		}
};

int main()
{
	ElementB elem;
	elem.draw();
	cout &lt;&lt; &quot;Hallo...&quot; &lt;&lt; endl;
	return 0;
}
</code></pre>
<p>Aber im Originalcode funkioniert es eben nicht mit <code>setSize( s )</code> .. bei diesem Funktionsaufruf stürtzt es ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843663</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Sat, 23 Jan 2010 12:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 12:37:45 GMT]]></title><description><![CDATA[<p>das ist schon klar, dass der funktionsaufruf an sich nicht falsch ist - aber da hier keiner lust hat, sich 100de von zeilen fremden codes anzugucken, musst du halt selbst suchen... wenn du das ganze dann zumindest ein wenig minimiert hast, wird sich auch wer finden, der deinen fehler sucht...</p>
<p>bb</p>
<p>edit: wie wärs eigtl mal mit der main.cpp am anfang?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843664</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 23 Jan 2010 12:37:45 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 12:42:00 GMT]]></title><description><![CDATA[<p>Na gut, wenn das so ist noch ein paar Links von mir:<br />
<a href="http://de.wikipedia.org/wiki/Debugger" rel="nofollow">Link</a><br />
<a href="http://de.wikipedia.org/wiki/GNU_Debugger" rel="nofollow">Link</a><br />
<a href="http://de.wikipedia.org/wiki/GNU_Debugger" rel="nofollow">Link</a><br />
Und ansonsten gaaaanz wichtig:<br />
<a href="http://www.wahrsagen-24.com/" rel="nofollow">Link</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843668</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sat, 23 Jan 2010 12:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 13:05:58 GMT]]></title><description><![CDATA[<p>Besonders die letzte Seite finde ich gut -)</p>
<p>Wahrsager:<br />
Ich habe eine gute und eine schlechte Nachricht für Sie.<br />
Die Gute: sie gewinnen nächste Woche viel Geld!</p>
<p>Die Schlechte: sie sterben vorher bei einem Unfall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843684</guid><dc:creator><![CDATA[Wahrsager]]></dc:creator><pubDate>Sat, 23 Jan 2010 13:05:58 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 13:11:34 GMT]]></title><description><![CDATA[<blockquote>
<p>btw. was haben 2 buttons mit nem counter zu tun? komplett fail sind auch die default-werte für die positionen. ne gleitkommazahl zu nehmen ist auch nicht so extrem klug, weil sie eben nicht sonderlich genau ist - können also durchaus mal nen paar mehr oder weniger steps sein(und wenns ganz dumm läuft, dann auch unendlich viele)</p>
</blockquote>
<p>Es ist ein Counter-Element. Also sowas:<br />
<a href="http://www.mikrocontroller.net/attachment/8990/terminal.png" rel="nofollow">http://www.mikrocontroller.net/attachment/8990/terminal.png</a> ( oben in der Mitte, nach &quot;Count&quot; )</p>
<p>Was meinst du wo mit den Steps?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843689</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Sat, 23 Jan 2010 13:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 13:59:21 GMT]]></title><description><![CDATA[<p>ein counter hat aber nichts mit irgend ner gui zu tun...</p>
<p>ich meine so was in etwa(gerad keinen compiler zur hand - kann also sein, dass es dummerweise gerade trotzdem geht):<br />
startwert: 1e15<br />
endwert: 1e16<br />
schrittweite: 1e-16</p>
<p>dem user (der klasse) so was zu erlauben, macht nicht viel sinn - soll er sich doch selbst drum kümmern, das umzurechnen...<br />
ein counter sollte einfach nur zählen können - der rest hat in nem counter nix zu suchen...<br />
ich bau doch auch keine klasse number und füg nen label mit dazu oO</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843718</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 23 Jan 2010 13:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 14:36:47 GMT]]></title><description><![CDATA[<p>Mit den Steps geht es darum, dass der Counter einen Wert hat. Meinetwegen 2. Jetzt steht also eine 2 im Textfeld. Klickt der User auf den oberen Button, wird, sofern Möglich step zur der Counterzahl addiert. Klickt er auf den Unteren Button, wird step subtrahiert. Somit hat der User als Steuerelement einen Zähler. Der Endnutzer drückt die Buttons, um den Wert zu manipulieren. min und max sind dazu da, das der User grenzen hat. Verändert der User keine Daten( belässt es also bei den Default-Werten ), kann der Endnutzer in 1er Schritten von 0 bis 10 navigieren.</p>
<p>Da ist nichts mit unendlich viele steps oder so...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843732</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Sat, 23 Jan 2010 14:36:47 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 14:51:44 GMT]]></title><description><![CDATA[<p>ChristophLu schrieb:</p>
<blockquote>
<p>[versucht schlechtes design wegzuerklären, liest nicht richtig und zeigt auch sonst 0 eigeninitiative]</p>
</blockquote>
<p>bye</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843736</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 23 Jan 2010 14:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 15:03:47 GMT]]></title><description><![CDATA[<p>So ... Problem gelöst. Es lag nicht an setSize sondern an einer Funktion, die tiefer aufgerufen wird.( Somit zu deiner 0-eigeninitiative-theorie ).<br />
Der Fehler war da nen Segmantation fault, den ich beheben konnte.</p>
<p>Es ist kein schlechtes Design sondern einfach nur ein Steuerelement wie ein Button, ein Textfeld oder sonst irgendwas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843745</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Sat, 23 Jan 2010 15:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 15:05:39 GMT]]></title><description><![CDATA[<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/1843747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843747</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sat, 23 Jan 2010 15:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 15:20:19 GMT]]></title><description><![CDATA[<p>Deinene Fehler hättest du aber schon viel früher, eigentlich schon vor der ganzen Diskussion, finden können, wenn du einmal mit dem Debugger durchgegangen wärst.</p>
<p>Und deine Klassen solltest du nochmal genauer anschauen.<br />
Warum erben alle Klassen von Style samt virtuellen Methoden, Style hat aber keinen virtuellen Destructor?<br />
Eine weitere Basis (die scheinbar dann auch genutzt werden soll für Elemente) basic_element wird eingeführt. redraw() gibts in Style, ein draw(Buffer, ..) erst mit basic_element.<br />
Die Bezeichnung &quot;Counter&quot; ist irreführend, da nicht irgend welche Events oder sonstwas mitgezählt wird sondern eine doublebasierte Spinbox samt User-Input gemodelt wird.<br />
Außerdem ist das mit den doubles echt ein Problem, da bedingt durch Ungenauigkeiten in der Darstellung zwei eigentlich gleiche Werte beim op== ein false liefern können, umgekehrt zwei verschiedene ein true. Damit ist nicht garantiert, dass dein Counter bei einem +2.0 auch in den Bounds bleibt.</p>
<p>Und Rechtschreibung wäre auch nicht schlecht (das heißt &quot;receive&quot; und nicht &quot;recive&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843753</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sat, 23 Jan 2010 15:20:19 GMT</pubDate></item><item><title><![CDATA[Reply to unerklärlich... on Sat, 23 Jan 2010 15:41:00 GMT]]></title><description><![CDATA[<p>Ich hätte den ganzen Stylekram auch in basic_element schreiben können, hab ihn aber zur Übersicht und Trennung zum Rest ausgelagert. Den Destruktor hatte ich nicht bedacht, werde ich aber einfügen.<br />
Alle Elemente erben noch von basic_element. Ein Vektor von den Klassen wird in einer Document-Klasse gespeichert. Per Polymorphie greife ich dann auf die wichtigsten Eigenschaften zu( z.b. draw() ).</p>
<p>Wegen dem Vergleich meinst du diese Zeile?</p>
<pre><code class="language-cpp">if( this-&gt;current == newCurrent ) return true;
</code></pre>
<p>Da bei einer Änderung des Wertes neu gezeichnet werden muss, wollte ich unnötiges Neuzeichnen ersparen, wenn der Wert gleich bleibt. Steht im Textfeld also 2.0 und der User will auf 2.0 setzen( <code>setCurrent( 2.0 )</code> ), sollte nicht neu gezeichnet werden.<br />
Das mit den Ungenauigkeiten ist mir bekannt. Wie vergleicht man sowas trotz der Ungenauigkeiten?</p>
<p>Meiner Meinung nach kann current nicht aus den Bounds hinausgehen, da ich die Grenzen mit &lt;= und &gt;= prüfe. Oder spielen die Ungenauigkeiten hier auch eine Rolle?<br />
Problem ist: Der User soll mit dieser Spinbox auch Kommazahlen verwenden können. Also zum Beispiel:<br />
`Step: 0.05</p>
<p>Min: 2.0</p>
<p>Max: 8.45</p>
<p>Current: 3.75`<br />
Sowas sollte auch Möglich sein. Hier sollen Mögliche Werte auch 2.0 und 8.45 sein.</p>
<p>Ich dachte, es hieße Counter, aber Spinbox heißt es eigentlich. Werde ich umbenennen.( genauso wie receive )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843761</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Sat, 23 Jan 2010 15:41:00 GMT</pubDate></item></channel></rss>