<?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[template - static member exportieren]]></title><description><![CDATA[<p>hallo</p>
<p>folgender code:</p>
<pre><code class="language-cpp">class idgenerator
{
public:
	static unsigned getid()
	{
		return ++id;
	}
	static unsigned id;
};
template &lt;class T&gt;
class object
{
public:
	static unsigned getid()
	{
		return id;
	}
	static unsigned id;
};

unsigned idgenerator::id = 0;
template &lt;class T&gt;
unsigned object&lt;T&gt;::id = any::idgenerator::getid();
</code></pre>
<p>ich möchte, dass jede <strong>verschiedene</strong> instanzierung der klasse<br />
eine eigene ID bekommt. also obejct&lt;int&gt; hat 0 und object&lt;float&gt; hat 1</p>
<p>allerdings gibt das linkerfehler bei mehreren dateien, wie kann ich das<br />
so umschreiben, dass das</p>
<p>nur im header steht (DLL header)<br />
von mehreren dateien inkludiert werden kann</p>
<p>ich weiß da echt nicht mehr weiter.</p>
<p>MfG templater</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/244687/template-static-member-exportieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 04:05:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/244687.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Jul 2009 22:02:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template - static member exportieren on Fri, 03 Jul 2009 22:02:22 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>folgender code:</p>
<pre><code class="language-cpp">class idgenerator
{
public:
	static unsigned getid()
	{
		return ++id;
	}
	static unsigned id;
};
template &lt;class T&gt;
class object
{
public:
	static unsigned getid()
	{
		return id;
	}
	static unsigned id;
};

unsigned idgenerator::id = 0;
template &lt;class T&gt;
unsigned object&lt;T&gt;::id = any::idgenerator::getid();
</code></pre>
<p>ich möchte, dass jede <strong>verschiedene</strong> instanzierung der klasse<br />
eine eigene ID bekommt. also obejct&lt;int&gt; hat 0 und object&lt;float&gt; hat 1</p>
<p>allerdings gibt das linkerfehler bei mehreren dateien, wie kann ich das<br />
so umschreiben, dass das</p>
<p>nur im header steht (DLL header)<br />
von mehreren dateien inkludiert werden kann</p>
<p>ich weiß da echt nicht mehr weiter.</p>
<p>MfG templater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736903</guid><dc:creator><![CDATA[templater]]></dc:creator><pubDate>Fri, 03 Jul 2009 22:02:22 GMT</pubDate></item><item><title><![CDATA[Reply to template - static member exportieren on Sat, 04 Jul 2009 08:30:23 GMT]]></title><description><![CDATA[<p>Muss es denn eine fortlaufende Nummer sein? Sonst mach doch sowas:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
struct object
{
    typedef T id;

    std::string getID() const
    {
        return typeid(id).name();
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1736959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736959</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sat, 04 Jul 2009 08:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to template - static member exportieren on Sat, 04 Jul 2009 10:33:23 GMT]]></title><description><![CDATA[<p>Ich hab grad deinen Code kompiliert. Dein Problem lässt sich auch lösen, indem du die statische Membervariable idgenerator::id als lokale statische Variable in getid() definierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736999</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sat, 04 Jul 2009 10:33:23 GMT</pubDate></item><item><title><![CDATA[Reply to template - static member exportieren on Sat, 04 Jul 2009 10:51:38 GMT]]></title><description><![CDATA[<p>typeid wollte ich nicht verwenden, da das einen gewissen overhead hat.<br />
danke dir <strong>Michael E.</strong> die idee mit dem statischen member funktioniert.</p>
<p>ich habs jetzt so gelöst:</p>
<pre><code class="language-cpp">class idgenerator
{
public:
	static unsigned getid()
	{
		static unsigned id = 0;
		return ++id;
	}
};
template &lt;class T&gt;
class object
{
public:
	static unsigned getid()
	{
		static unsigned id = idgenerator::getid();
		return id;
	}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1737003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1737003</guid><dc:creator><![CDATA[templater]]></dc:creator><pubDate>Sat, 04 Jul 2009 10:51:38 GMT</pubDate></item></channel></rss>