<?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[Pedantische Template Frage]]></title><description><![CDATA[<p>Hi, ist es möglich das IMyInterface so zu implementieren, dass sowohl</p>
<pre><code class="language-cpp">class MyClass : public Base, IMyInterface {...};
</code></pre>
<p>als auch</p>
<pre><code class="language-cpp">class MyClass : public Base, IMyInterface&lt;MyClass&gt; {...};
</code></pre>
<p>möglich ist? Dies hier geht leider nicht</p>
<pre><code class="language-cpp">class IMyInterface
{
public:
	virtual Base* MyFunction() const = 0;
};

template &lt;class T&gt;
class IMyInterface
{
public:
	virtual T* MyFunction() const = 0;
};
</code></pre>
<p>Was dagegen geht ist das hier</p>
<pre><code class="language-cpp">template &lt;class T = Base()&gt;
class IMyInterface
{
public:
	virtual T* MyFunction() const = 0;
};
</code></pre>
<p>mit</p>
<pre><code class="language-cpp">class MyClass : public Base, IMyInterface&lt;&gt; {...};
</code></pre>
<p>Allerdings würde ich das leere &lt;&gt; gerne vermeiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/291256/pedantische-template-frage</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 19:40:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/291256.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Aug 2011 22:13:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pedantische Template Frage on Sat, 13 Aug 2011 22:13:33 GMT]]></title><description><![CDATA[<p>Hi, ist es möglich das IMyInterface so zu implementieren, dass sowohl</p>
<pre><code class="language-cpp">class MyClass : public Base, IMyInterface {...};
</code></pre>
<p>als auch</p>
<pre><code class="language-cpp">class MyClass : public Base, IMyInterface&lt;MyClass&gt; {...};
</code></pre>
<p>möglich ist? Dies hier geht leider nicht</p>
<pre><code class="language-cpp">class IMyInterface
{
public:
	virtual Base* MyFunction() const = 0;
};

template &lt;class T&gt;
class IMyInterface
{
public:
	virtual T* MyFunction() const = 0;
};
</code></pre>
<p>Was dagegen geht ist das hier</p>
<pre><code class="language-cpp">template &lt;class T = Base()&gt;
class IMyInterface
{
public:
	virtual T* MyFunction() const = 0;
};
</code></pre>
<p>mit</p>
<pre><code class="language-cpp">class MyClass : public Base, IMyInterface&lt;&gt; {...};
</code></pre>
<p>Allerdings würde ich das leere &lt;&gt; gerne vermeiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2105820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2105820</guid><dc:creator><![CDATA[StellerFragen]]></dc:creator><pubDate>Sat, 13 Aug 2011 22:13:33 GMT</pubDate></item><item><title><![CDATA[Reply to Pedantische Template Frage on Sat, 13 Aug 2011 22:29:02 GMT]]></title><description><![CDATA[<p>Nein, das geht afaik nicht - Templates und (reguläre) Klassen sind etwas unterschiedliches und werden auch unterschiedlich vom Compiler verwendet.<br />
(bei einem Funktionsaufruf kannst du schließlich auch nicht die Klammern () weglassen, selbst wenn die Funktion keine Parameter braucht)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2105824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2105824</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 13 Aug 2011 22:29:02 GMT</pubDate></item></channel></rss>