<?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 Problem]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich lerne für mein Studium gerade die Anfänge von C++ und stehe nun vor einem Problem, für das ich keine Lösung weiß. Der Compiler erzeugt mir eine Fehlermeldung an der Stelle wo ich in main ein Objekt erzeuge und Werte zuweise. (PERSON p(&quot;Mueller&quot;, &quot;Peter&quot;, 33))</p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class PERSON
{ 
    private:
    string vorname, name;
    int  alter;  
    public:
    PERSON&amp; operator  = (const PERSON&amp; einePerson)
            { 
              name    = einePerson.name;
              vorname = einePerson.vorname;
              alter   = einePerson.alter;
              return *this;
            }

};

int main()
{
    PERSON p(&quot;Mueller&quot;, &quot;Peter&quot;, 33);

  system(&quot;Pause&quot;);
  return EXIT_SUCCESS;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/119229/konstruktor-problem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 22:06:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119229.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Aug 2005 18:13:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:13:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich lerne für mein Studium gerade die Anfänge von C++ und stehe nun vor einem Problem, für das ich keine Lösung weiß. Der Compiler erzeugt mir eine Fehlermeldung an der Stelle wo ich in main ein Objekt erzeuge und Werte zuweise. (PERSON p(&quot;Mueller&quot;, &quot;Peter&quot;, 33))</p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class PERSON
{ 
    private:
    string vorname, name;
    int  alter;  
    public:
    PERSON&amp; operator  = (const PERSON&amp; einePerson)
            { 
              name    = einePerson.name;
              vorname = einePerson.vorname;
              alter   = einePerson.alter;
              return *this;
            }

};

int main()
{
    PERSON p(&quot;Mueller&quot;, &quot;Peter&quot;, 33);

  system(&quot;Pause&quot;);
  return EXIT_SUCCESS;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/860866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860866</guid><dc:creator><![CDATA[Jorgo]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:13:44 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:15:04 GMT]]></title><description><![CDATA[<p>Du brauchst einen Kosntruktor Person::Person(string, string, int)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860868</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:15:04 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:18:53 GMT]]></title><description><![CDATA[<p>Danke dir!</p>
<p>Wo setze ich ihn in den Code ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860869</guid><dc:creator><![CDATA[Jorgo]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:23:29 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class PERSON
{
    public:
        PERSON(const string &amp;strName, const string &amp;strVorname, int nAge)
        :    name(strName),
             vorname(strVorname),
             alter(nAge)
        { }

// rest wie gehabt
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/860872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860872</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:23:29 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:23:37 GMT]]></title><description><![CDATA[<p>deklaration in die klasse und definition ausserhalb:<br />
oder komplett mit initialisierungsliste in die klasse</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class PERSON
{
    private:
    string vorname, name;
    int  alter;  
    public:
    PERSON(const string &amp; nam, const string &amp; vornam, const int alt):
    name(nam),vorname(vornam),alter(alt){}
    PERSON&amp; operator  = (const PERSON&amp; einePerson)
            {
              name    = einePerson.name;
              vorname = einePerson.vorname;
              alter   = einePerson.alter;
              return *this;
            }

};

int main()
{
    PERSON p(&quot;Mueller&quot;, &quot;Peter&quot;, 33);

  system(&quot;Pause&quot;);
  return EXIT_SUCCESS;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/860873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860873</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:23:37 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:25:37 GMT]]></title><description><![CDATA[<p>Nochmals Danke euch zweien!</p>
<p>Ich habe mein Fehler verstanden, und kann jetzt auch die Compliler-Fehlermeldung deuten!</p>
<p>Jorgo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860876</guid><dc:creator><![CDATA[Jorgo]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:25:37 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:45:05 GMT]]></title><description><![CDATA[<p>Jetzt habe ich aber doch noch eine Frage:</p>
<p>Ist dann nicht der ganze Bereich mit</p>
<pre><code class="language-cpp">PERSON&amp; operator  = (const PERSON&amp; einePerson)
            { 
              name    = einePerson.name;
              vorname = einePerson.vorname;
              alter   = einePerson.alter;
              return *this;
            }
</code></pre>
<p>unnötig? Schließlich übergebe ich ja die Werte an:</p>
<pre><code class="language-cpp">PERSON(const string &amp;nam, const string &amp;vornam, const int alt): 
    name(nam),vorname(vornam),alter(alt){}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/860888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860888</guid><dc:creator><![CDATA[Jorgo]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:45:05 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:57:29 GMT]]></title><description><![CDATA[<p>Den brauchst du für Copy-Zuweisung, zB. PERSON a( &quot;Foo&quot;, &quot;bar&quot;, 12 ), b( &quot;Bla&quot;, &quot;blubb&quot;, 13); a = b; // a hat nun den gleichen Inhalt wie b, aber ne eigene Kopie davon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860894</guid><dc:creator><![CDATA[User---]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 18:57:32 GMT]]></title><description><![CDATA[<p>kommt darauf an, ob du eine zuweisung zulassen möchtest</p>
<pre><code class="language-cpp">PERSON p(&quot;müller&quot;, &quot;peter&quot;, 33);
PERSON p1;
p1 = p;
</code></pre>
<p>somit wäre p1 == p, was natürlich keinen sinn macht <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>
<p>am besten du liesst noch ein bisschen<br />
<a href="http://tutorial.schornboeck.net/bigthree.htm" rel="nofollow">http://tutorial.schornboeck.net/bigthree.htm</a><br />
<a href="http://www.cpp-tutor.de/cpp/le12/le12_03.htm" rel="nofollow">http://www.cpp-tutor.de/cpp/le12/le12_03.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/860895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860895</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 19:03:07 GMT]]></title><description><![CDATA[<p>User--- schrieb:</p>
<blockquote>
<p>Den brauchst du für Copy-Zuweisung, zB. PERSON a( &quot;Foo&quot;, &quot;bar&quot;, 12 ), b( &quot;Bla&quot;, &quot;blubb&quot;, 13); a = b; // a hat nun den gleichen Inhalt wie b, aber ne eigene Kopie davon</p>
</blockquote>
<p>Verstehe! So in der Art?:</p>
<pre><code class="language-cpp">int main()
{
    PERSON p(&quot;Mueller&quot;, &quot;Peter&quot;, 33);
    PERSON q(&quot;Bla&quot;, &quot;blubb&quot;, 13); 
    q = p;   

cout&lt;&lt;p.get_name()&lt;&lt;endl;
cout&lt;&lt;q.get_name()&lt;&lt;endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/860904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860904</guid><dc:creator><![CDATA[Jorgo]]></dc:creator><pubDate>Mon, 29 Aug 2005 19:03:07 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 19:15:50 GMT]]></title><description><![CDATA[<p>Aber wie mache ich es dann wenn ich nur den Vorname und das Alter kopieren möchte?</p>
<pre><code class="language-cpp">PERSON p(&quot;Mueller&quot;, &quot;Peter&quot;, 33);
    PERSON q(&quot;Bla&quot;); 
    q = p;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/860913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860913</guid><dc:creator><![CDATA[Jorgo]]></dc:creator><pubDate>Mon, 29 Aug 2005 19:15:50 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 19:18:45 GMT]]></title><description><![CDATA[<p><a href="http://www.cpp-tutor.de/cpp/le12/le12_03.htm#mehrfach" rel="nofollow">http://www.cpp-tutor.de/cpp/le12/le12_03.htm#mehrfach</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/860917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860917</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Mon, 29 Aug 2005 19:18:45 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 19:23:17 GMT]]></title><description><![CDATA[<p>miller_m schrieb:</p>
<blockquote>
<p><a href="http://www.cpp-tutor.de/cpp/le12/le12_03.htm#mehrfach" rel="nofollow">http://www.cpp-tutor.de/cpp/le12/le12_03.htm#mehrfach</a></p>
</blockquote>
<p>OK, ich lese mich nochmals durch. Danke für die Geduld!</p>
<p>Viele Grüße<br />
Jorgo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860921</guid><dc:creator><![CDATA[Jorgo]]></dc:creator><pubDate>Mon, 29 Aug 2005 19:23:17 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 20:01:06 GMT]]></title><description><![CDATA[<p>Geht auch per default-Parameter - etwa so:</p>
<pre><code class="language-cpp">PERSON::PERSON (const char *szName,
                const char *szFirstName = NULL,
                const char  iAge = (-1))
{
    bool    fSuccess;

    SetDefaultValues ();            //Noch zu schreiben!

    fSuccess = SetName (szName);    //Noch zu schreiben!

    if ((fSuccess == true) &amp;&amp; (szFirstName != NULL))
        fSuccess = SetFirstName (szFirstName) //Noch zu schreiben!

    if ((fSuccess == true) &amp;&amp; (iAge &gt; 0))
        fSuccess = SetAge (iAge);   //Noch zu schreiben!

    if (fSuccess == false)
        throw (1);                 //Nummer/Mssg/Type 
                                   //(statt 1) noch definieren! 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/860950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860950</guid><dc:creator><![CDATA[MBCS-CITP]]></dc:creator><pubDate>Mon, 29 Aug 2005 20:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 20:34:12 GMT]]></title><description><![CDATA[<p>Wir sind hier in nem C++-Forum <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/860968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860968</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Mon, 29 Aug 2005 20:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Mon, 29 Aug 2005 20:58:38 GMT]]></title><description><![CDATA[<p>... schrieb:</p>
<blockquote>
<p>Wir sind hier in nem C++-Forum <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>
</blockquote>
<p>Das stimmt, aber manchmal ist es sinnvoll, einen NULL-Pointer als Marker fuer etwas zu nehmen. Die Transformation in die std::string-Klasse kann dann in den Set-Methoden erfolgen. Wo &quot;C-Style&quot; angemessen oder einfach schneller oder einfacher nehme ich ihn auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860978</guid><dc:creator><![CDATA[MBCS-CITP]]></dc:creator><pubDate>Mon, 29 Aug 2005 20:58:38 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Tue, 30 Aug 2005 03:58:15 GMT]]></title><description><![CDATA[<p>MBCS-CITP schrieb:</p>
<blockquote>
<p>Geht auch per default-Parameter - etwa so:</p>
<pre><code class="language-cpp">PERSON::PERSON (const char *szName,
                const char *szFirstName = NULL,
                const char  iAge = (-1))
{
    bool    fSuccess;

    SetDefaultValues ();            //Noch zu schreiben!

    fSuccess = SetName (szName);    //Noch zu schreiben!

    if ((fSuccess == true) &amp;&amp; (szFirstName != NULL))
        fSuccess = SetFirstName (szFirstName) //Noch zu schreiben!

    if ((fSuccess == true) &amp;&amp; (iAge &gt; 0))
        fSuccess = SetAge (iAge);   //Noch zu schreiben!

    if (fSuccess == false)
        throw (1);                 //Nummer/Mssg/Type 
                                   //(statt 1) noch definieren! 
}
</code></pre>
</blockquote>
<p>ahh...lol...sorry...is mir nur so rausgerutscht</p>
<pre><code class="language-cpp">PERSON::PERSON (const std::string&amp; name,
                const std::string&amp; vorname=std::string(),
                const char  alter = 0)
                :name(name),vorname(vorname),alter(alter)
</code></pre>
<p>so von wegen schneller...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9942">@Jorgo</a> das ist so nicht ohne weitere möglich-zumindest nicht mit dem zuweisungsoperator. Der zuweisungsoperator ist dazu da, komplett zu kopieren, und nicht nur Teilstücke. Wär ja fast so, wie wenn dir beim zuweisen von int werten nur das erste Bit kopiert werden würde <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>
<p>wenn du aber zb nur den namen doer nur das alter kopieren willst, kannst du natürlich auch funktionen für sowas schreiben:</p>
<pre><code class="language-cpp">PERSON p(&quot;Mueller&quot;);
PERSON q(&quot;Bla&quot;);

p.setVorname(&quot;Peter&quot;);
p.setAlter(33);

q.setVorname(p.getVorname());
q.setAlter(p.getAlter());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/861046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861046</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 30 Aug 2005 03:58:15 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Tue, 30 Aug 2005 19:03:46 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5202">@otze</a></p>
<p>Nur muss man zwischen zwei Dingen unterscheiden: Zwischen einem nicht gesetzten Datentyp und einem leeren: Es ist ein Unterchied, ob ich einen String vom Default Konstruktor der Stringklasse, der leer ist (also nur ein End-of-String&quot;) enthalte oder ob ich den entsprenden Wert garnicht gesetzt habe. Dies kann man am einfachsten einen NULL-Pointer setzen. Ansosnten haette ich dort keine Moeglichkeit, ausser einem Extra-Flag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861627</guid><dc:creator><![CDATA[MBCS-CITP]]></dc:creator><pubDate>Tue, 30 Aug 2005 19:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Tue, 30 Aug 2005 20:57:32 GMT]]></title><description><![CDATA[<p>MBCS-CITP schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5202">@otze</a></p>
<p>Nur muss man zwischen zwei Dingen unterscheiden: Zwischen einem nicht gesetzten Datentyp und einem leeren: Es ist ein Unterchied, ob ich einen String vom Default Konstruktor der Stringklasse, der leer ist (also nur ein End-of-String&quot;) enthalte oder ob ich den entsprenden Wert garnicht gesetzt habe. Dies kann man am einfachsten einen NULL-Pointer setzen. Ansosnten haette ich dort keine Moeglichkeit, ausser einem Extra-Flag.</p>
</blockquote>
<p>was ist NULL sonst ?</p>
<pre><code class="language-cpp">void myfunc(int i){cout &lt;&lt; i &lt;&lt; endl;}
void myfunc(void* vp){cout &lt;&lt; &quot;void pointer&quot; &lt;&lt; endl;}
...
myfunc(NULL);
</code></pre>
<p>Na was wird aufgerufen ? <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/861700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861700</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Tue, 30 Aug 2005 20:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Wed, 31 Aug 2005 05:05:25 GMT]]></title><description><![CDATA[<p>MBCS-CITP schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5202">@otze</a></p>
<p>Nur muss man zwischen zwei Dingen unterscheiden: Zwischen einem nicht gesetzten Datentyp und einem leeren: Es ist ein Unterchied, ob ich einen String vom Default Konstruktor der Stringklasse, der leer ist (also nur ein End-of-String&quot;) enthalte oder ob ich den entsprenden Wert garnicht gesetzt habe.</p>
</blockquote>
<p>es gibt in C++ keinen leeren Datentyp. du hast auch nicht die möglichkeit eine variable nicht zu setzen, da immer zuerst der default-ctor aufgerufen wird. Das Ergebnis kann zwar undefiniert sein, wie zb bei integer werten, die zu dem zeitpunkt jeden wert haben können, aber der default ctor wird aufgerufen.<br />
Ausnahme ist natürlich, du benutzt eine initialisierungsliste, dann wird der default ctor durch den ersetzt, den du in der initialisierungsliste angegeben hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861756</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 31 Aug 2005 05:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Wed, 31 Aug 2005 10:11:23 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>es gibt in C++ keinen leeren Datentyp. du hast auch nicht die möglichkeit eine variable nicht zu setzen, da immer zuerst der default-ctor aufgerufen wird.</p>
</blockquote>
<p>Das ist das Problem. Deshalb habe ich angewoehnt, grundsaetzlich in solchen Faellen Memberklassen nur als Pointer zu einer Instanz der Klasse auftauchen zu lassen, die im Default-Konsturktor auf NULL gesetzt wird und ggf. waerend der Lebenszeit des Objects durch einen new-Operator der Memberklasse mit &quot;Leben&quot; gefuellt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861927</guid><dc:creator><![CDATA[MBCS-CITP]]></dc:creator><pubDate>Wed, 31 Aug 2005 10:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Problem on Wed, 31 Aug 2005 13:03:02 GMT]]></title><description><![CDATA[<p>MBCS-CITP schrieb:</p>
<blockquote>
<p>...und ggf. waerend der Lebenszeit des Objects durch einen new-Operator der Memberklasse mit &quot;Leben&quot; gefuellt wird.</p>
</blockquote>
<p>Womit Du dann völlig am Sinn eines <strong>Konstruktors</strong> vorbeischießt. Zumal Du automatic storage und alle Vorteile die sie mitbringt einfach in den Wind schießt. Ich hoffe, Du willst nicht sagen, dass die Performance einer Klasse &quot;Person&quot; eine wesentliche Rolle spielt... falls sie das jemals tun sollte, kann man hier immernoch später optimieren und solange die einfache und sichere Variante benutzen.</p>
<p>Durch die 0-Zeiger handelst Du dir dann auch noch eine mehrwertige Logik ein, die es speziell zu handlen gilt. Wenn man sich schon für so triviale Klassen dermaßen den Kopf zerbrechen muss, na dann gute Nacht.</p>
<p>Zum eigentlichen Problem: Ist der Zuweisungsoperator nicht überflüssig? Der Compiler-generierte sollte doch (zumindest noch) alles richtig machen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861972</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Wed, 31 Aug 2005 13:03:02 GMT</pubDate></item></channel></rss>