<?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[Automatisches Casten eigener Klasse ermöglichen]]></title><description><![CDATA[<p>Hallo allerseits,<br />
mir stellt sich gerade folgende Frage. Angenommen, ich habe mir eine eigene Stringklasse geschrieben und möchte, dass diese nun auch in ein char* konvertiert werden kann. Das ganze soll dann ungefähr so ablaufen:</p>
<p>char *x = myString;</p>
<p>bzw.</p>
<p>char x = (char*) myString;</p>
<p>Wie ermögliche ich sowas?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197822/automatisches-casten-eigener-klasse-ermöglichen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 13:41:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197822.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Nov 2007 09:48:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Automatisches Casten eigener Klasse ermöglichen on Thu, 15 Nov 2007 09:48:35 GMT]]></title><description><![CDATA[<p>Hallo allerseits,<br />
mir stellt sich gerade folgende Frage. Angenommen, ich habe mir eine eigene Stringklasse geschrieben und möchte, dass diese nun auch in ein char* konvertiert werden kann. Das ganze soll dann ungefähr so ablaufen:</p>
<p>char *x = myString;</p>
<p>bzw.</p>
<p>char x = (char*) myString;</p>
<p>Wie ermögliche ich sowas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403498</guid><dc:creator><![CDATA[Trillee]]></dc:creator><pubDate>Thu, 15 Nov 2007 09:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to Automatisches Casten eigener Klasse ermöglichen on Thu, 15 Nov 2007 10:30:16 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>dafür gibt's den Konvertierungsoperator, den jede Klasse definieren kann. Dann braucht's nichtmal den expliziten cast.</p>
<pre><code class="language-cpp">struct myString {
   operator char*();
};
</code></pre>
<p>(geht natürlich auch für andere Typen als char*)</p>
<p>Aber Vorsicht: Nicht selten bringt der Konvertierungsoperator mehr Probleme als er löst - er wird nämlich sehr viel häufiger angewendet, als man so meint.<br />
Ich habe mal gelesen (weiß nicht mehr wo), dass das einzige, was beim Design von std::string richtig gemacht worden sei, darin bestünde, dass man den char*-konvertierungsoperator weggelassen habe...</p>
<p>Vergiss bei Deinem Ziel nicht Folgendes:</p>
<pre><code class="language-cpp">myString s;
char* c;
c = s; // impliziter Call des Konv-op.
strcpy(c, &quot;Dies ist ein gaaaaaaanz langer Text und niemand weiß, ob der Buffer in s das alles aufnehmen kann und ob das Objekt noch \&quot;in sich konsistent\&quot; ist ... z.B. ob eine intern verwaltete Länge noch stimmt ....&quot;);

delete[] c; // Huuuups, nun hat s vielleicht keinen Speicher mehr und weiß es nichtmal

char st[100];

strcpy(s, &quot;TestString&quot;); // Hupps, eigentlich meinte der Programmierer die Variable st
// ohne Konv-Op würde dieser Fehler beim Compile auffallen; so schreibt er in s.p rum und keiner weiß es...
</code></pre>
<p>Schau Dir lieber std::sting::c_str() an ...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403501</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 15 Nov 2007 10:30:16 GMT</pubDate></item><item><title><![CDATA[Reply to Automatisches Casten eigener Klasse ermöglichen on Thu, 15 Nov 2007 10:51:46 GMT]]></title><description><![CDATA[<p>Danke, die Frage war nur am Beispiel von einem String erklärt, sozusagen war es eine abstrakte Frage :). Wozu selbst Strings definieren, wenn man std::string hat :).</p>
<p>Trotzdem, super Antwort, hat alles erklärt, was man dazu wissen muss. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403537</guid><dc:creator><![CDATA[Trillee]]></dc:creator><pubDate>Thu, 15 Nov 2007 10:51:46 GMT</pubDate></item><item><title><![CDATA[Reply to Automatisches Casten eigener Klasse ermöglichen on Thu, 15 Nov 2007 11:17:53 GMT]]></title><description><![CDATA[<p>Freut mich, wenn ich helfen konnte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Danke für die Rückmeldung,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403548</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 15 Nov 2007 11:17:53 GMT</pubDate></item></channel></rss>