<?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 Frage]]></title><description><![CDATA[<p>Hi ich verstehe folgendes nicht so ganz...</p>
<pre><code class="language-cpp">class TKreis
{
public:
  int x, y, Dicke;
  void Erscheinen (void);
  void Bewegen (void);
  void Verschwinden (void);
  TKreis (int xx, int yy, int dd);
};

TKreis *Kreis;
TForm1 *Form1;
//---------------------------------------------------------------------------
TKreis::TKreis(int xx, int yy, int dd)
{
  x = xx; y = yy; Dicke = dd;
}
</code></pre>
<p>Warum muss da nochmal so ne übergabe stattfinden?</p>
<p>Geht es nicht auch so:</p>
<pre><code class="language-cpp">class TKreis
{
public:
  void Erscheinen (void);
  void Bewegen (void);
  void Verschwinden (void);
  TKreis (int x, int y, int Dicke);
};

TKreis *Kreis;
TForm1 *Form1;
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Bzw welchen Zweck erfüllt das obere? Und warum muss es so gemacht werden?</p>
<p>Thx schonmal im Voraus!!!!</p>
<p>Straightflush</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/138417/konstruktor-frage</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 11:15:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/138417.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Feb 2006 09:31:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor Frage on Sun, 26 Feb 2006 09:31:09 GMT]]></title><description><![CDATA[<p>Hi ich verstehe folgendes nicht so ganz...</p>
<pre><code class="language-cpp">class TKreis
{
public:
  int x, y, Dicke;
  void Erscheinen (void);
  void Bewegen (void);
  void Verschwinden (void);
  TKreis (int xx, int yy, int dd);
};

TKreis *Kreis;
TForm1 *Form1;
//---------------------------------------------------------------------------
TKreis::TKreis(int xx, int yy, int dd)
{
  x = xx; y = yy; Dicke = dd;
}
</code></pre>
<p>Warum muss da nochmal so ne übergabe stattfinden?</p>
<p>Geht es nicht auch so:</p>
<pre><code class="language-cpp">class TKreis
{
public:
  void Erscheinen (void);
  void Bewegen (void);
  void Verschwinden (void);
  TKreis (int x, int y, int Dicke);
};

TKreis *Kreis;
TForm1 *Form1;
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Bzw welchen Zweck erfüllt das obere? Und warum muss es so gemacht werden?</p>
<p>Thx schonmal im Voraus!!!!</p>
<p>Straightflush</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1003146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1003146</guid><dc:creator><![CDATA[Straightflush]]></dc:creator><pubDate>Sun, 26 Feb 2006 09:31:09 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Frage on Sun, 26 Feb 2006 09:44:33 GMT]]></title><description><![CDATA[<p>Das, was du als eigene Idee gepostet hast, ließe sich nicht kompilieren, da du in der Klasse TKreis einen Konstruktor angibst, dessen Rumpf aber nicht existiert (linker error: unresolved ...). Bei deiner Version würdest du also gänzlich auf einen Konstruktor verzichten, nimmst dann aber in Kauf, dass die Variablen x, y und Dicke deiner Instanz einen undefinierten Wert haben (Stichwort lokale Integer, diese werden nähmlich im Gegensatz zu globalen nicht mit 0 initialisiert).</p>
<p>Das obere Beispiel ist aber auch nur wenig sinvoll, da der Konstruktor lediglich genutzt wird, um public Variablen zu setzen. Damit umgehst du ausschließlich das Problem der undefinierten Werte.</p>
<p>Eine meiner Meinung nach brauchbarere Implementierung sähe z.B. wie folgt aus:</p>
<pre><code class="language-cpp">struct TKreisOptionen   { 
   public:
      int x, y, d;
};
class TKreis   {
   private:
      TKreisOptionen Koordinaten;
   public:
      TKreis(int x, int y, int d)   {
         this-&gt;Koordinaten.x = x;
         this-&gt;Koordinaten.y = y;
         this-&gt;Koordinaten.d = d;
      }

      TKreisOptionen GetKoordinaten()   {
         return this-&gt;Koordinaten;
      }
};

// .....
// Zu benutzen z.B. wie folgt:
void __fastcall TForm1::Button1Click(TObject *Sender)   {
   TKreis *MyKreis = new TKreis(5, 3, 2);
   ShowMessage(MyKreis-&gt;GetKoordinaten().x);
   delete MyKreis;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1003153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1003153</guid><dc:creator><![CDATA[Reyx]]></dc:creator><pubDate>Sun, 26 Feb 2006 09:44:33 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Frage on Mon, 27 Feb 2006 09:25:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Also ich würde hier eher eine Initialisierungsliste nehmen.</p>
<pre><code class="language-cpp">class TKreis
{
public:
  int x, y, Dicke;
  void Erscheinen (void);
  void Bewegen (void);
  void Verschwinden (void);
  TKreis (int x_, int y_, int d_) : x(x_), y(y_), Dicke(d_) {}
};
</code></pre>
<p>Bei Bedarf könnten im Konstruktor auch Default-Parameter angegeben werden falls man mal einen trivialen Konstruktor benötigt.<br />
Das gleiche könnte man auch für TKreisOptionen verwenden.<br />
Korrekter wäre es aber die internen Variablen private zu machen und Zugriffsfunktionen zu erzeugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1003926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1003926</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 27 Feb 2006 09:25:44 GMT</pubDate></item></channel></rss>