<?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[Konstruktor wird immer wieder aufgerufen]]></title><description><![CDATA[<p>Hallo.</p>
<p>Habe eine Klasse über Sortieralgorithmen geschrieben, aber das Problem ist, dass der Konstruktor immer wieder aufgerufen wird. Wenn man da mal ne MessageBox zum Beispiel reinmacht, kommt wenn sie weggedrückt wird gleich eine neue.</p>
<p>Ich schicke einfach mal meine Klasse mit Konstruktor:</p>
<pre><code class="language-cpp">class sort
{
private:
	int *pixels;
	int *pixelstmp;
	int comp, swaps, speed;
	HWND hwnd;
	HRGN hRgn;

	//Sub Sort Functions
	int SmallestElement(int);
	void ResetCtr();
	void QuickSort(int, int);
	void InsertSort(int, int, int);
	void ShakerSortLeft(int, int);
	void ShakerSortRight(int, int);
	void MergeSort(int, int);
	void Merge(int, int, int);
	void BuildHeap();
	void HeapSort(int);

	//Main Sort Functions
	void SelectionSort();
	void BubbleSort();
	void InsertSort();
	void QuickSort();
	void ShakerSort();
	void MergeSort();
	void HeapSort();
public:

	sort(HWND);
	~sort();

	void SelectAlgorithm(int);
	void DrawPixels();
	void CreateRandomPixels();
	void SetSpeed(int);
};

sort::sort(HWND h)
{
	HRGN hRgnPixels, hRgnSwaps, hRgnComparisons, hRgnStatus;

	hwnd=h;
	hRgnPixels=CreateRectRgn(20, 20, 521, 521);
	hRgnComparisons=CreateRectRgn(100, 540, 170, 570);
	hRgnSwaps=CreateRectRgn(300, 540, 370, 570);
	hRgnStatus=CreateRectRgn(0,0,1,1);
	hRgn=CreateRectRgn(0,0,1,1);
	CombineRgn(hRgnStatus, hRgnComparisons, hRgnSwaps, RGN_OR);
	CombineRgn(hRgn, hRgnPixels, hRgnStatus, RGN_OR);
	DeleteObject(hRgnSwaps);
	DeleteObject(hRgnComparisons);
	DeleteObject(hRgnStatus);

	pixels = new int[MAX_PIXELS];
	pixelstmp = new int[MAX_PIXELS];
	CreateRandomPixels();
	ResetCtr();
	DrawPixels();
}
</code></pre>
<p>Man merkt es, weil die Funktion DrawPixels immer wieder aufgerufen wird, obwohl das nur einmal geschehen soll.</p>
<p>Einige Funktionen sind aus der WinAPI, aber das Problem müsste eigentlich trotzdem ins C++-Forum gehören (meiner Meinung nach).</p>
<p>Hat da jemand eine Idee, was da falsch sein könnte?</p>
<p>Grüße Max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191815/konstruktor-wird-immer-wieder-aufgerufen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 05:16:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191815.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Sep 2007 19:07:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor wird immer wieder aufgerufen on Thu, 06 Sep 2007 19:07:45 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Habe eine Klasse über Sortieralgorithmen geschrieben, aber das Problem ist, dass der Konstruktor immer wieder aufgerufen wird. Wenn man da mal ne MessageBox zum Beispiel reinmacht, kommt wenn sie weggedrückt wird gleich eine neue.</p>
<p>Ich schicke einfach mal meine Klasse mit Konstruktor:</p>
<pre><code class="language-cpp">class sort
{
private:
	int *pixels;
	int *pixelstmp;
	int comp, swaps, speed;
	HWND hwnd;
	HRGN hRgn;

	//Sub Sort Functions
	int SmallestElement(int);
	void ResetCtr();
	void QuickSort(int, int);
	void InsertSort(int, int, int);
	void ShakerSortLeft(int, int);
	void ShakerSortRight(int, int);
	void MergeSort(int, int);
	void Merge(int, int, int);
	void BuildHeap();
	void HeapSort(int);

	//Main Sort Functions
	void SelectionSort();
	void BubbleSort();
	void InsertSort();
	void QuickSort();
	void ShakerSort();
	void MergeSort();
	void HeapSort();
public:

	sort(HWND);
	~sort();

	void SelectAlgorithm(int);
	void DrawPixels();
	void CreateRandomPixels();
	void SetSpeed(int);
};

sort::sort(HWND h)
{
	HRGN hRgnPixels, hRgnSwaps, hRgnComparisons, hRgnStatus;

	hwnd=h;
	hRgnPixels=CreateRectRgn(20, 20, 521, 521);
	hRgnComparisons=CreateRectRgn(100, 540, 170, 570);
	hRgnSwaps=CreateRectRgn(300, 540, 370, 570);
	hRgnStatus=CreateRectRgn(0,0,1,1);
	hRgn=CreateRectRgn(0,0,1,1);
	CombineRgn(hRgnStatus, hRgnComparisons, hRgnSwaps, RGN_OR);
	CombineRgn(hRgn, hRgnPixels, hRgnStatus, RGN_OR);
	DeleteObject(hRgnSwaps);
	DeleteObject(hRgnComparisons);
	DeleteObject(hRgnStatus);

	pixels = new int[MAX_PIXELS];
	pixelstmp = new int[MAX_PIXELS];
	CreateRandomPixels();
	ResetCtr();
	DrawPixels();
}
</code></pre>
<p>Man merkt es, weil die Funktion DrawPixels immer wieder aufgerufen wird, obwohl das nur einmal geschehen soll.</p>
<p>Einige Funktionen sind aus der WinAPI, aber das Problem müsste eigentlich trotzdem ins C++-Forum gehören (meiner Meinung nach).</p>
<p>Hat da jemand eine Idee, was da falsch sein könnte?</p>
<p>Grüße Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1360457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1360457</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Thu, 06 Sep 2007 19:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor wird immer wieder aufgerufen on Thu, 06 Sep 2007 19:26:16 GMT]]></title><description><![CDATA[<p>Ist so aus dem Code nicht ersichtlich. Evtl erzeugst du ein Objekt dieser Klasse in deiner Fensterfunktion (z.B. bei WM_PAINT) oder sonst wo, was dann bewirkt dass dauernd ein neues Objekt erzeugt wird (und damit auch dauernd der Konstruktor aufgerufen wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1360468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1360468</guid><dc:creator><![CDATA[nep]]></dc:creator><pubDate>Thu, 06 Sep 2007 19:26:16 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor wird immer wieder aufgerufen on Thu, 06 Sep 2007 19:45:20 GMT]]></title><description><![CDATA[<p>Na eben.</p>
<p>Ich Depp hab das Exemplar von meiner Klasse in der WindowsProcedure mit sort s; deklariert. Die muss doch static sein. Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1360477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1360477</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Thu, 06 Sep 2007 19:45:20 GMT</pubDate></item></channel></rss>