<?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[Kopierkonstruktor]]></title><description><![CDATA[<pre><code class="language-cpp">class CTest {
   WCHAR* m_str;
public:
   CTest(const CTest* rhs) {
      // wenn das Objekt, auf den es zeigt, NULL is
      // dann soll es leere string initialisiert werden
      if (!*rhs)
        // -&gt; m_str leer string zuweisen

   }

   bool operator!(){ return (!this-&gt;m_str);}
};
</code></pre>
<p>(!*rhs) kein compiler error, nur funz es net, wie kann ich es prüfen, ob das Objekt mit hilfe der operator! überprüfen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242665/kopierkonstruktor</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 22:49:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242665.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 Jun 2009 17:47:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 17:47:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class CTest {
   WCHAR* m_str;
public:
   CTest(const CTest* rhs) {
      // wenn das Objekt, auf den es zeigt, NULL is
      // dann soll es leere string initialisiert werden
      if (!*rhs)
        // -&gt; m_str leer string zuweisen

   }

   bool operator!(){ return (!this-&gt;m_str);}
};
</code></pre>
<p>(!*rhs) kein compiler error, nur funz es net, wie kann ich es prüfen, ob das Objekt mit hilfe der operator! überprüfen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722407</guid><dc:creator><![CDATA[JnZn558]]></dc:creator><pubDate>Sat, 06 Jun 2009 17:47:33 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 17:51:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class CTest {
   WCHAR* m_str;
public:
   CTest(const CTest* rhs) {
      // wenn das Objekt, auf den es zeigt, NULL is
      // dann soll es leere string initialisiert werden
      if (!*rhs)
        // -&gt; m_str leer string zuweisen
      else
        m_str=0;//leerheit markieren

   }

   bool operator!(){ return (!this-&gt;m_str);}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1722409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722409</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 06 Jun 2009 17:51:14 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 18:01:40 GMT]]></title><description><![CDATA[<p>Da der Thread-Titel &quot;Kopierkonstruktor&quot; lautet:</p>
<pre><code class="language-cpp">class Test
{
    public:
        Test()  {...}                   //&lt;- Default-Konstruktor
        Test( const Test&amp; test ) {...}  //&lt;- Kopierkonstruktor
        Test( const Test* test ) {...}  //&lt;- Anderer Konstruktor
};

int main()
{
    Test a;        // &lt;- Default-Konstruktor
    Test b( a );   // &lt;- Kopier-Konstruktor
    Test c( &amp;a );  // &lt;- Anderer Konstruktor
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1722415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722415</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 06 Jun 2009 18:01:40 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 19:08:03 GMT]]></title><description><![CDATA[<p>hier ein Beispiel</p>
<pre><code class="language-cpp">CTest Beispiel;
CTest* pTest = &amp;Beispiel;
</code></pre>
<p>wenn in Beispiel NULL Zeiger ist, soll hier kein Fehler produziert werden. sondern mithilfe des Zeigers Beispiel ein leere String zuweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722440</guid><dc:creator><![CDATA[JnZn558]]></dc:creator><pubDate>Sat, 06 Jun 2009 19:08:03 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 19:31:09 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">CTest Beispiel;
CTest* pTest = &amp;Beispiel;
</code></pre>
<p>Die Adresse von Beispiel soll NULL sein? Ich glaube nicht <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="😃"
    /><br />
und überhaupt macht das, was du dort machst, keinen Sinn...<br />
beschreibe mal, wofür du denkst, diesen ctor zu brauchen...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722455</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 06 Jun 2009 19:31:09 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 20:20:09 GMT]]></title><description><![CDATA[<p>in der Klasse ist eine Zeigervariable m_str (typ LPWSTR), diese kann eine NULL Zeiger sein,</p>
<p>und wenn ich diese NULL Zeiger mit kopierkonstruktor kopiere, und diese mit hilfe pTest mit cout ausgeben will, wird eine Fehler auftreten wegen NULL Zeiger, deshalb möchte ich wenn die m_str bei Source noch NULL ist, dann soll sie bei Kopieren eine leere string zugewiesen bekommen, damit eine fehlerlose ausgabe mit cout möglich wäre. wisst ihr jez wie ich damit meine? da ich eine operator! intergriert hab, dachte ich mit (!*rhs) kann ich prüfen ob m_str NULL ist oder nicht, leider funz moment nicht richtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722472</guid><dc:creator><![CDATA[JnZn558]]></dc:creator><pubDate>Sat, 06 Jun 2009 20:20:09 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 20:26:48 GMT]]></title><description><![CDATA[<p>Warum nimmst du nicht std::wstring, da hast das Problem (plus ner Menge weiterer) nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722473</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 06 Jun 2009 20:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 20:32:59 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Warum nimmst du nicht std::wstring, da hast das Problem (plus ner Menge weiterer) nicht?</p>
</blockquote>
<p>dass man das Rad nicht neuerfinden soll, scheint die meinsten klar zu sein, nur man soll wissen, wie das rad aufgebaut ist, dadurch lernt man auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722475</guid><dc:creator><![CDATA[JnZn558]]></dc:creator><pubDate>Sat, 06 Jun 2009 20:32:59 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 20:37:40 GMT]]></title><description><![CDATA[<p>Derzeit sieht's für mich eher ziemlich wurschtelig aus.<br />
edit: Also im Klartext, willst du eine eigene Stringklasse entwickeln? Dann könnte man schon viel konkreter Vorschläge machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722476</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 06 Jun 2009 20:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 20:38:30 GMT]]></title><description><![CDATA[<p>Wie wärs damit (in etwa-ungetestet)?</p>
<pre><code class="language-cpp">class Test
{
  wchar_t *anchor;

  static wchar_t *empty;
public:
  Test(const Test&amp; rhs) : anchor(nullptr)
  {
    size_t length = irgend_ne_fkt_die_die_laenge_angibt(anchor) +1;
    anchor = new wchar_t[length];
    std::copy(rhs.anchor, rhs.anchor+length, anchor);
  }

  const wchar_t* c_str() const { return (anchor ? anchor : empty); }
};

wchar_t *Test::empty = L&quot;&quot;;
</code></pre>
<p>bb</p>
<p>PS: Kanns sein, dass die stdlib keine Funktion bereitstellt, die die Länge eines wstrings ausgibt? Oo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722477</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 06 Jun 2009 20:38:30 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 21:07:19 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>PS: Kanns sein, dass die stdlib keine Funktion bereitstellt, die die Länge eines wstrings ausgibt? Oo</p>
</blockquote>
<p>Wie wärs mit</p>
<pre><code class="language-cpp">std::char_traits&lt;wchar_t&gt;::length
</code></pre>
<p>?</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722488</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sat, 06 Jun 2009 21:07:19 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 21:15:39 GMT]]></title><description><![CDATA[<p>Don06 schrieb:</p>
<blockquote>
<p>unskilled schrieb:</p>
<blockquote>
<p>PS: Kanns sein, dass die stdlib keine Funktion bereitstellt, die die Länge eines wstrings ausgibt? Oo</p>
</blockquote>
<p>Wie wärs mit</p>
<pre><code class="language-cpp">std::char_traits&lt;wchar_t&gt;::length
</code></pre>
<p>?</p>
<p>Gruß<br />
Don06</p>
</blockquote>
<p>Jopp, klingt gut - hab auch gerade noch 'wcslen' gefunden - allerdings scheint keine der beiden c++ - referenz - seiten, irgend etwas darüber zu kennen -.-</p>
<p><a href="http://www.cplusplus.com/query/search.cgi?q=wcslen" rel="nofollow">http://www.cplusplus.com/query/search.cgi?q=wcslen</a></p>
<p><a href="http://www.cppreference.com/wiki/?do=search&amp;id=wcslen" rel="nofollow">http://www.cppreference.com/wiki/?do=search&amp;id=wcslen</a></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722492</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 06 Jun 2009 21:15:39 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 21:15:48 GMT]]></title><description><![CDATA[<p>ah, ich hab mittlerweile gemerkt, dass ich ein denkfehler hab.</p>
<pre><code class="language-cpp">class CTest {
....
public:
   CTest() {}
   CTest(const CTest* pObj) {
      // aufruf 2. konstruktor
   }
};

CTest obj;
CTest* test = &amp;obj;
</code></pre>
<p>Wird bei 2. Fall also CTest* test = &amp;obj; hier überhaupt den 2. konstruktor aufgerufen? wenn nicht, wie sieht denn der 2. konstruktor aufruf denn aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722493</guid><dc:creator><![CDATA[JnZn558]]></dc:creator><pubDate>Sat, 06 Jun 2009 21:15:48 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor on Sat, 06 Jun 2009 21:20:32 GMT]]></title><description><![CDATA[<p>Also ich kann dir leider nicht ganz folgen...</p>
<pre><code class="language-cpp">CTest obj; 
CTest test = obj;

const wchar_t *test2 = test.c_str();
std::wcout &lt;&lt; test2;
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722495</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 06 Jun 2009 21:20:32 GMT</pubDate></item></channel></rss>