<?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[Hilfe! Constructor macht nicht was er soll!]]></title><description><![CDATA[<p>Ich tick gleich aus: In meinem Konstruktor setze ich eine Membervariable auf true.</p>
<p>Wenn ich den Debugger anwerfe ist die Variable direkt nach dem Konstruktor false. Die anderen Variablen die ich auf True gesetzt habe bleiben auf true.</p>
<p>Der Konstruktor:</p>
<pre><code class="language-cpp">Application::Application()
{
	uimanager	= new TUIManager();
	programPath	= NULL;
	kamera		= new Kamera();
	karusell	= new Karusell(this);

	f_FPS		= true;
	f_Smooth	= true;
	f_Wire		= false;
	f_ZTest		= true;
	f_PProj		= false;
	f_Licht		= true;
	f_Ambient	= true;
	f_2Seitig	= false;
	f_LocalV	= false;
	f_Texturing 	= true;         //&lt;---- Diese hier
	f_Light[0]	= true;
	f_Light[1]	= false;
	f_Light[2]	= false;
	f_Light[3]	= false;
	f_Light[4]	= false;
	f_Light[5]	= false;
	f_Light[6]	= false;
};
</code></pre>
<p>Application ist eine globale Variable im Programm, es wird also nicht impliziet der Konstruktor aufgerufen.</p>
<p>Im Debugger kann ich beobachten dass:</p>
<p>- Beim start der Anwendung (wenn der Debugger beim eintritt in main anhält) ist Application komplett genullt, d.h. alle Member sind false. (so wie sich das gehört)<br />
- Mach ich einen schritt weiter, haben alle variablen den korrekten Wert außer f_Texturing.</p>
<p>Was läuft hier verkehrt? Ich hab auch schon mal mein Projekt gecleant und frisch erstellt. (Eclipse3.1 + CDT3.0 + MinGW)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136717/hilfe-constructor-macht-nicht-was-er-soll</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 14:58:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136717.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Feb 2006 17:55:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Sun, 12 Feb 2006 17:55:38 GMT]]></title><description><![CDATA[<p>Ich tick gleich aus: In meinem Konstruktor setze ich eine Membervariable auf true.</p>
<p>Wenn ich den Debugger anwerfe ist die Variable direkt nach dem Konstruktor false. Die anderen Variablen die ich auf True gesetzt habe bleiben auf true.</p>
<p>Der Konstruktor:</p>
<pre><code class="language-cpp">Application::Application()
{
	uimanager	= new TUIManager();
	programPath	= NULL;
	kamera		= new Kamera();
	karusell	= new Karusell(this);

	f_FPS		= true;
	f_Smooth	= true;
	f_Wire		= false;
	f_ZTest		= true;
	f_PProj		= false;
	f_Licht		= true;
	f_Ambient	= true;
	f_2Seitig	= false;
	f_LocalV	= false;
	f_Texturing 	= true;         //&lt;---- Diese hier
	f_Light[0]	= true;
	f_Light[1]	= false;
	f_Light[2]	= false;
	f_Light[3]	= false;
	f_Light[4]	= false;
	f_Light[5]	= false;
	f_Light[6]	= false;
};
</code></pre>
<p>Application ist eine globale Variable im Programm, es wird also nicht impliziet der Konstruktor aufgerufen.</p>
<p>Im Debugger kann ich beobachten dass:</p>
<p>- Beim start der Anwendung (wenn der Debugger beim eintritt in main anhält) ist Application komplett genullt, d.h. alle Member sind false. (so wie sich das gehört)<br />
- Mach ich einen schritt weiter, haben alle variablen den korrekten Wert außer f_Texturing.</p>
<p>Was läuft hier verkehrt? Ich hab auch schon mal mein Projekt gecleant und frisch erstellt. (Eclipse3.1 + CDT3.0 + MinGW)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992449</guid><dc:creator><![CDATA[Anfänger06]]></dc:creator><pubDate>Sun, 12 Feb 2006 17:55:38 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Sun, 12 Feb 2006 17:58:39 GMT]]></title><description><![CDATA[<p>Zeig ein compilierbares Minimalbeispiel das den Fehler zeigt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/992451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992451</guid><dc:creator><![CDATA[nnn]]></dc:creator><pubDate>Sun, 12 Feb 2006 17:58:39 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Sun, 12 Feb 2006 18:17:23 GMT]]></title><description><![CDATA[<p>Wenn ich das bewusst bei kleinen Beispielen provozieren könnte, dann würde es den Fehler sicherlich nicht mehr geben.</p>
<p>Ich denke es liegt am Compiler. Hab gerade folgendes probiert:</p>
<p>- Eine andere neue Member Variable test, direkt hinter Texturing initialisiert. -&gt; Keine Änderung. Test wird korrekt initialisiert.</p>
<p>- Texturing ans ende des Konstruktors verschoben -&gt; Initialisierung geht</p>
<p>- Variable wieder zurückverschoben -&gt; Fehler ist wieder da.</p>
<p>Scheint also ein Fehler im Compiler zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992463</guid><dc:creator><![CDATA[Anfänger06]]></dc:creator><pubDate>Sun, 12 Feb 2006 18:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Sun, 12 Feb 2006 18:29:23 GMT]]></title><description><![CDATA[<p>Vielleichst schreibste im Array (f_Light) über deinen Speicherbereich raus und damit in f_Texturing rein. Arraygröße von f_Light also vielleicht nur 6 und nicht 7?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992480</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Sun, 12 Feb 2006 18:29:23 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Sun, 12 Feb 2006 23:58:13 GMT]]></title><description><![CDATA[<p>Du hast recht. Das hab ich gar nicht gesehn! Aber wieso meckert mir das der Kompiler nicht an!</p>
<p>Ach ich ahne es schon: C/C++ is nunmal nicht typsicher. Wenn C/C++ das wäre, währe die Sprache richtig gut - und unsere Betriebssysteme um einiges Sicherer (Buffer-Overflows ade) *träum*</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992751</guid><dc:creator><![CDATA[Anfänger06]]></dc:creator><pubDate>Sun, 12 Feb 2006 23:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Mon, 13 Feb 2006 05:17:57 GMT]]></title><description><![CDATA[<p>Anfänger06 schrieb:</p>
<blockquote>
<p>Ach ich ahne es schon: C/C++ is nunmal nicht typsicher.</p>
</blockquote>
<p>Das hat mit Typsicherheit nichts zu tun.</p>
<blockquote>
<p>Wenn C/C++ das wäre, währe die Sprache richtig gut - und unsere Betriebssysteme um einiges Sicherer (Buffer-Overflows ade) *träum*</p>
</blockquote>
<p>Man kann C++ so benutzen, dass so etwas nicht passieren kann. Es liegt eigentlich nur an dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992775</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 13 Feb 2006 05:17:57 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Mon, 13 Feb 2006 20:51:13 GMT]]></title><description><![CDATA[<p>Wenn stillschweigend Arraygrenzen überschritten werden ist das Typsicher? Also ich weiß nicht. Aber wieso meckert da der Compiler net? (GCC)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993518</guid><dc:creator><![CDATA[Anfänger06]]></dc:creator><pubDate>Mon, 13 Feb 2006 20:51:13 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Mon, 13 Feb 2006 20:55:19 GMT]]></title><description><![CDATA[<p>Ganz einfach eine Überprüfung sieht der Standard nicht vor. Wenn man es wollte, müsste man auch zur Laufzeit prüfen. Genau das will man in C++ vermeiden. An Stellen bei denen man es braucht kann man es selbst implementieren oder z.B. std::vector::at() verwenden, der schmeisst eine out-of-range exception.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993528</guid><dc:creator><![CDATA[OMFG]]></dc:creator><pubDate>Mon, 13 Feb 2006 20:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Mon, 13 Feb 2006 20:56:48 GMT]]></title><description><![CDATA[<p>Aber sowas könnte doch zur Compilezeit schon entdeckt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993529</guid><dc:creator><![CDATA[compiler(r)]]></dc:creator><pubDate>Mon, 13 Feb 2006 20:56:48 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Tue, 14 Feb 2006 05:44:04 GMT]]></title><description><![CDATA[<p>Anfänger06 schrieb:</p>
<blockquote>
<p>Wenn stillschweigend Arraygrenzen überschritten werden ist das Typsicher?</p>
</blockquote>
<p>Wenn du ohne Gurt mit dem Auto fährst, ist das Safer Sex?<br />
Das hat mit Typsicherheit <em>nichts zu tun</em>.</p>
<p>Anfänger06 schrieb:</p>
<blockquote>
<p>Aber wieso meckert da der Compiler net? (GCC)</p>
</blockquote>
<p>compiler(r) schrieb:</p>
<blockquote>
<p>Aber sowas könnte doch zur Compilezeit schon entdeckt werden.</p>
</blockquote>
<p>Man könnte argumentieren, dass die primäre Aufgabe eines Compilers die ist, das Programm zu übersetzen, nicht Fehler darin zu entdecken. Es gibt durchaus Erweiterungen bei einigen Compilern, bei denen die Abwesenheit dieser Prüfung bewusst ausgenutzt wird. Die WinAPI z.B. ist voll von Strukturen, die am Ende ein Array mit einem Element haben, das für Daten variabler Länge benutzt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993630</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 14 Feb 2006 05:44:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Tue, 14 Feb 2006 06:30:55 GMT]]></title><description><![CDATA[<p>compiler(r) schrieb:</p>
<blockquote>
<p>Aber sowas könnte doch zur Compilezeit schon entdeckt werden.</p>
</blockquote>
<p>es könnte, aber das ist in c/c++ nicht wünschenswert. viele c-programmiere machen zb folgendes:</p>
<pre><code class="language-cpp">struct node
{
  struct node *next;
  unsigned size;
  char data[1];
} *n;

n=malloc(sizeof(struct node)-1+100);
n-&gt;size=100;
</code></pre>
<p>da wäre eine überlaufprüfung ärgerlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993637</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Tue, 14 Feb 2006 06:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Tue, 14 Feb 2006 16:03:27 GMT]]></title><description><![CDATA[<p>Die WinAPI ist nicht unbedingt ein gutes Beispiel für sichere Programmierung. Ich will jatzt nicht auf MS rumhacken, teilweise können die auch gar nix dafür.</p>
<p>C hat mit funktionen wie strcpy() das gesamte sicherheitskonzept von MS unterhöhlt. Bufferoverflows sind damit vorprogrammiert. Unser Prof. hat uns in der Uni mal aufgezeigt wie sowas zu stande kommt. Und das läßt vermuten, dass solange Windows (und somit auch Unix das auf der selben Sprache basiert) nicht komplett neu geschrieben wird, Bufferoverfloas, niemals vermieden werden können. Die Sicherheit fängt da bei der Sprache an. Mit einer Typsicheren sprache die overflows von arrays einfach nicht erlaubt und entsprechend streng ist macht zwar dem eingefleischten C-Programmierer die Arbeit weniger spass, aber dem Hacker am anderen Ende gehts genauso. <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/994088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994088</guid><dc:creator><![CDATA[KFlash]]></dc:creator><pubDate>Tue, 14 Feb 2006 16:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe! Constructor macht nicht was er soll! on Tue, 14 Feb 2006 17:14:40 GMT]]></title><description><![CDATA[<p>der compiler koennte nur an sehr wenigen stellen ein ueberschreiten der arraygrenzen feststellen, naemlich da, wo ueber ein zahlenliteral indiziert wird. ueberall anders muesste jeder moegliche programmablauf durchgerechnet werden, was nicht sinnvoll ist.</p>
<p>das mit dem &quot;bufferoverflows koennen mit so einer sprache niemals vermieden werden&quot; ist unsinn. man muss beim programmieren nur wissen, was man tut. etwa das array in eine klasse stecken und bei jedem zugriff die grenzen ueberpruefen oder aehnliches.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994151</guid><dc:creator><![CDATA[PeterTheMaster]]></dc:creator><pubDate>Tue, 14 Feb 2006 17:14:40 GMT</pubDate></item></channel></rss>