<?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[Fehler]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe zwei Ortobjekte erstellt mit Hilfe des Makros damit es nicht so viel Tipparbeit ist!</p>
<p>Jetzt will ich aber in main den name vom ersten Ort einlesen und das klappt auch! Auch die Ausgabe danach!</p>
<p>Aber wenn ich das ganze Objekt auf das zweiter Ort-Objekt kopieren will, gibt es den Fehler!</p>
<p>Ich habe etwas von Zuweisungs- und Copy-methoden gehört! Muss man die erstellen für sowas wenn ja wo?</p>
<p>Habe sehr viel Erfahrung in C aber mit C++ komme ich noch nicht so ganz zurecht!</p>
<pre><code class="language-cpp">#define ORT(X) class Ort##X \
{ \
public: \
	char* name; \
};\

ORT(1)
ORT(2)

int main()
{
	Ort1 *o1 = (Ort1*)malloc(sizeof(Ort1));

	o1-&gt;name = new char[100];
	string s;
	cin&gt;&gt;s;
	strcpy(o1-&gt;name, s.c_str());
	printf(o1-&gt;name)

	Ort2 *o2 = o1; //Fehler!
	cout&lt;&lt;o2-&gt;name&lt;&lt;endl;
}
</code></pre>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304691/fehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 25 Jun 2026 05:18:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304691.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jun 2012 14:11:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler on Tue, 12 Jun 2012 14:11:36 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe zwei Ortobjekte erstellt mit Hilfe des Makros damit es nicht so viel Tipparbeit ist!</p>
<p>Jetzt will ich aber in main den name vom ersten Ort einlesen und das klappt auch! Auch die Ausgabe danach!</p>
<p>Aber wenn ich das ganze Objekt auf das zweiter Ort-Objekt kopieren will, gibt es den Fehler!</p>
<p>Ich habe etwas von Zuweisungs- und Copy-methoden gehört! Muss man die erstellen für sowas wenn ja wo?</p>
<p>Habe sehr viel Erfahrung in C aber mit C++ komme ich noch nicht so ganz zurecht!</p>
<pre><code class="language-cpp">#define ORT(X) class Ort##X \
{ \
public: \
	char* name; \
};\

ORT(1)
ORT(2)

int main()
{
	Ort1 *o1 = (Ort1*)malloc(sizeof(Ort1));

	o1-&gt;name = new char[100];
	string s;
	cin&gt;&gt;s;
	strcpy(o1-&gt;name, s.c_str());
	printf(o1-&gt;name)

	Ort2 *o2 = o1; //Fehler!
	cout&lt;&lt;o2-&gt;name&lt;&lt;endl;
}
</code></pre>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222392</guid><dc:creator><![CDATA[CaptainC]]></dc:creator><pubDate>Tue, 12 Jun 2012 14:11:36 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler on Tue, 12 Jun 2012 14:27:56 GMT]]></title><description><![CDATA[<p>So erstellst du dir zwei verschiedene Klassen, eine mit Namen Ort1 und eine mit Namen Ort2, und nicht zwei verschieden Objekte vom typ Ort. Das ginge so:</p>
<pre><code>class Ort
{
 public char* Name;
}

int main()
{
 Ort o1, o2;
}
</code></pre>
<p>So sind jetzt zwei Objekte vom Typ Ort erstellt worden.<br />
Ort1 und Ort2 sind von vorneherein komplett unterschiedliche Typen, deswegen kannst du die auch nicht gegenseitig zuweisen.</p>
<p>Zusätzlich solltest du dir noch mal grundsätlich was über Objektorientiertes Programmieren aneigen. Das was du machst sollte so zwar gehen, ist aber ziemlich schlechter Stil. (sSoll nicht böse gemeint sein, aber OO ist halt nunmal was grundsätlzich neues, wenn man von C kommt...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222400</guid><dc:creator><![CDATA[Christian999]]></dc:creator><pubDate>Tue, 12 Jun 2012 14:27:56 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler on Tue, 12 Jun 2012 14:38:56 GMT]]></title><description><![CDATA[<p>probiere es mal so:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

class Ort
{
public:
    Ort(std::string ort_name) : ort_name_(ort_name)
    { }

    std::string name() const
    {
        return ort_name_;
    }
private:
    std::string ort_name_;
};

int main()
{
    Ort ort1(&quot;Berlin&quot;);
    Ort ort2(&quot;Hamburg&quot;);

    std::cout &lt;&lt; &quot;ort1 &quot; &lt;&lt; ort1.name() &lt;&lt; &quot; ort2: &quot; &lt;&lt; ort2.name() &lt;&lt; std::endl;
}
</code></pre>
<p>wenn du das jetzt so als vorlage nimmst und verstehst, kannst du darauf aufbauen.<br />
und wenn du jetzt in c++ prgrammierst, vermische c und c++ am beste nicht. z.B. gibt es in c++ statt malloc/free new/delete, aber in deinem fall brauchst du das gar nicht dynamisch, also lass es einfach weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222401</guid><dc:creator><![CDATA[vario-500]]></dc:creator><pubDate>Tue, 12 Jun 2012 14:38:56 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler on Tue, 12 Jun 2012 16:28:53 GMT]]></title><description><![CDATA[<p>CaptainC schrieb:</p>
<blockquote>
<p>Habe sehr viel Erfahrung in C</p>
</blockquote>
<p>Das bezweifle ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222445</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 12 Jun 2012 16:28:53 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler on Tue, 12 Jun 2012 17:06:01 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>CaptainC schrieb:</p>
<blockquote>
<p>Habe sehr viel Erfahrung in C</p>
</blockquote>
<p>Das bezweifle ich.</p>
</blockquote>
<p>Wieso?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222458</guid><dc:creator><![CDATA[christian99]]></dc:creator><pubDate>Tue, 12 Jun 2012 17:06:01 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler on Tue, 12 Jun 2012 17:33:54 GMT]]></title><description><![CDATA[<p>Versuch das Ganze mal mit struct statt class, das hier wäre die C-Variante (ohne Einlesen des strings):</p>
<pre><code class="language-cpp">#define ORT(X) typedef struct Ort_##X \
{ \
public: \
    char* name; \
} Ort##X;\

ORT(1)
ORT(2)

int main()
{
    Ort1 *o1 = (Ort1*)malloc(sizeof(Ort1));

    o1-&gt;name = (char*)malloc(100);
    strcpy(o1-&gt;name, &quot;meh&quot;);
    printf(o1-&gt;name)

    Ort2 *o2 = o1; //Fehler!
}
</code></pre>
<p>Den Tippfehler den du drin hast (bei mir kommts schon vor der Zuweisung zum Fehler) hab ich dir mal dringelassen. Die Speicherlecks auch.</p>
<p>christian99 schrieb:</p>
<blockquote>
<p>krümelkacker schrieb:</p>
<blockquote>
<p>CaptainC schrieb:</p>
<blockquote>
<p>Habe sehr viel Erfahrung in C</p>
</blockquote>
<p>Das bezweifle ich.</p>
</blockquote>
<p>Wieso?</p>
</blockquote>
<p>Weil dir die Fehlermeldung dann normalerweise was sagen sollte.</p>
<p>Wenn du C++ lernen willst, mach bitte folgendes: vergiss erstmal den ganzen C-Krempel. malloc, printf, strcpy haben in C++ erstmal so garnichts zu suchen. Und dann lies dir bitte die Links in meiner Signatur durch und halte dich daran, dann kann dir besser geholfen werden. Und besorg dir ein ordentliches C++-Lehrbuch (Links gibts in den FAQ), damit du dir garnicht erst den Endachtziger &quot;C-mit-Klassen&quot; Stil angewöhnst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222464</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 12 Jun 2012 17:33:54 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler on Tue, 12 Jun 2012 19:17:56 GMT]]></title><description><![CDATA[<p>CaptainC schrieb:</p>
<blockquote>
<p>Fehler</p>
</blockquote>
<p>Antwort <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>
<p>Ein aussagekräftiger Titel wäre wohl zu viel verlangt gewesen.<br />
Mich überrascht die Gutmütigkeit der Moderatoren immer wieder.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222513</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 12 Jun 2012 19:17:56 GMT</pubDate></item></channel></rss>