<?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[Einmal-objekte erzeugen]]></title><description><![CDATA[<p>Hi Com,</p>
<p>Ich hab ein wenig mit dem VC++ 6 Compiler gespielt und getestet, ob es möglich währe Einmal-opjekte zu erzäugen, eben durch namenlose Klassen, aber leider wollte der VC++ einfach nicht übersetzten, sobalt ich eine Methode in meiner Klasse deklariert habe.<br />
Mit dem g++ Compiler ist mir das dann doch gelungen, aber beim weiterem Rumspielen ist mir dann doch aufgefallen, das er dashier anstandslos Übersetzt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class
{
  public:
  	void print();
}mein_einmal_obj;

void $_10::print()
{
      printf(&quot;Mich gibt es nur einmal!\n&quot;);
}

int main(int argc, char* argv[])
{
    $_10 mein_einmal_zu_viel_obj;
    mein_einmal_obj.print();
    mein_einmal_zu_viel_obj.print();
    std::cin.get();
	return 0;
}
</code></pre>
<p>Ist das ISO C++ bzw überhaupt guter Programmstiel?</p>
<p>Mfg Temeschwarrior</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201734/einmal-objekte-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 05:54:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201734.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Jan 2008 14:42:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einmal-objekte erzeugen on Thu, 03 Jan 2008 14:42:56 GMT]]></title><description><![CDATA[<p>Hi Com,</p>
<p>Ich hab ein wenig mit dem VC++ 6 Compiler gespielt und getestet, ob es möglich währe Einmal-opjekte zu erzäugen, eben durch namenlose Klassen, aber leider wollte der VC++ einfach nicht übersetzten, sobalt ich eine Methode in meiner Klasse deklariert habe.<br />
Mit dem g++ Compiler ist mir das dann doch gelungen, aber beim weiterem Rumspielen ist mir dann doch aufgefallen, das er dashier anstandslos Übersetzt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class
{
  public:
  	void print();
}mein_einmal_obj;

void $_10::print()
{
      printf(&quot;Mich gibt es nur einmal!\n&quot;);
}

int main(int argc, char* argv[])
{
    $_10 mein_einmal_zu_viel_obj;
    mein_einmal_obj.print();
    mein_einmal_zu_viel_obj.print();
    std::cin.get();
	return 0;
}
</code></pre>
<p>Ist das ISO C++ bzw überhaupt guter Programmstiel?</p>
<p>Mfg Temeschwarrior</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430021</guid><dc:creator><![CDATA[Temeschwarrior]]></dc:creator><pubDate>Thu, 03 Jan 2008 14:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal-objekte erzeugen on Thu, 03 Jan 2008 14:53:19 GMT]]></title><description><![CDATA[<p>schau dich mal nach dem entwurfsmuster &quot;singleton&quot; um...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430027</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Thu, 03 Jan 2008 14:53:19 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal-objekte erzeugen on Thu, 03 Jan 2008 14:57:38 GMT]]></title><description><![CDATA[<p>Mein Compiler nimmt deinen Code nicht an, also wirds wohl auch kein ISO C++ sein.<br />
Außerdem wird für die Ausgabe in C++ kein printf() sondern std::cout verwendet.<br />
Wenn du nur eine Instanz einer Klasse haben willst, schreibst du eine Singleton-Klasse:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Singleton
{
private:
   Singleton() {}
public:
   ~Singleton() {}
   // gibt eine Instanz der Klasse Singleton zurück,
   // die nur einmal existieren kann, da sie static ist
   static Singleton&amp; Instance()
   {
      static Singleton s;
      return s;
   }
   void print()
   {
      std::cout &lt;&lt; &quot;Mich gibt es nur einmal!\n&quot;;
   }
};

int main()
{
   Singleton&amp; s = Singleton::Instance();
   s.print();
   std::cin.get();
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1430030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430030</guid><dc:creator><![CDATA[Ryuzaki]]></dc:creator><pubDate>Thu, 03 Jan 2008 14:57:38 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal-objekte erzeugen on Thu, 03 Jan 2008 15:38:42 GMT]]></title><description><![CDATA[<p>Thx für die schnelle Antwort bin zufrieden</p>
<p>Mfg Temeschwarrior</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430064</guid><dc:creator><![CDATA[Temeschwarrior]]></dc:creator><pubDate>Thu, 03 Jan 2008 15:38:42 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal-objekte erzeugen on Thu, 03 Jan 2008 18:44:15 GMT]]></title><description><![CDATA[<p>Ich glaube nicht dass &quot;$_10&quot; korrektes C++ ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430200</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 03 Jan 2008 18:44:15 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal-objekte erzeugen on Thu, 03 Jan 2008 19:05:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13960">@hustbaer</a> wenn man unter Dev C++ das hier eintippt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class
{
  public:
   void print();
}mein_einmal_obj;

int main(int argc, char* argv[])
{
    mein_einmal_obj.print();
    std::cin.get();
    return 0;
}
</code></pre>
<p>Kommt bei mir das hier:<br />
[Linker error] undefined reference to `$_10::print()'</p>
<p>Nicht wirklich überraschend, wenn man print() nicht definiert hat, aber über das $_10 bin ich auf die Idee gekommen;)</p>
<p>Mfg Temeschwarrior</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430215</guid><dc:creator><![CDATA[Temeschwarrior]]></dc:creator><pubDate>Thu, 03 Jan 2008 19:05:22 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal-objekte erzeugen on Thu, 03 Jan 2008 23:14:02 GMT]]></title><description><![CDATA[<p>Mag schon sein dass dein Compiler das so frisst, Standard C++ ist es aber nicht (und damit nicht portierbar).</p>
<p>Gib der Klasse einen Namen, dann kannst du den Klassennamen statt $_10 verwenden.</p>
<p>BTW: wenn ich das dem VC2005 zu fressen gebe meldet er z.B. &quot;error LNK2001: unresolved external symbol &quot;public: void __thiscall &lt;unnamed-tag&gt;::print(void)&quot; (?print@&lt;unnamed-tag&gt;@@QAEXXZ)&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430336</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 03 Jan 2008 23:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal-objekte erzeugen on Fri, 04 Jan 2008 14:45:50 GMT]]></title><description><![CDATA[<p>Wenn du die Methode gleich inline definieren würdest, dann ist das sogar Standard-C++ (wenn auch ungewöhlich):</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 

class 
{ 
  public: 
   void print() { std::cout &lt;&lt; &quot;hallo&quot;; }
}mein_einmal_obj; 

int main(int argc, char* argv[]) 
{ 
    mein_einmal_obj.print(); 
    std::cin.get(); 
    return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1430653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430653</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 04 Jan 2008 14:45:50 GMT</pubDate></item></channel></rss>