<?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[Default-Parameter Problem]]></title><description><![CDATA[<p>c:\Visual Studio Projects\UebeProg\Training.cpp(7): error C2648: 'M::x' : use of member as default parameter requires static member</p>
<p>Das ist die Meldung, die sich mein Compiler bei diesem Code ausgedacht hat, um mich zu ärgern:</p>
<pre><code class="language-cpp">#include&lt;stdio.h&gt;

class M{
	int x;
public:
	M():x(3){}

	void insert(int k=x-1){
		x=k;
	}

	int getX(){
		return x;
	}
};

int main(){
	M dummy;
	dummy.setX();
	printf(&quot;%d&quot;,dummy.getX());
	getchar();
	return 0;
}
</code></pre>
<p>Jetzt ist es aber so, dass der Default-Parameter entfallen können soll,<br />
und in diesem Fall soll einfach x-1 verwendet werden können.<br />
Static darf x aber auch nicht sein, es soll jedenfalls jedes Objekt dieser Klasse sein eigenes x bekommen.<br />
Gibt's da einen Trick, wie man das auch mit nicht-Static Members zum Laufen bekommen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/172531/default-parameter-problem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 18:44:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172531.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Feb 2007 22:08:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Default-Parameter Problem on Mon, 05 Feb 2007 22:08:25 GMT]]></title><description><![CDATA[<p>c:\Visual Studio Projects\UebeProg\Training.cpp(7): error C2648: 'M::x' : use of member as default parameter requires static member</p>
<p>Das ist die Meldung, die sich mein Compiler bei diesem Code ausgedacht hat, um mich zu ärgern:</p>
<pre><code class="language-cpp">#include&lt;stdio.h&gt;

class M{
	int x;
public:
	M():x(3){}

	void insert(int k=x-1){
		x=k;
	}

	int getX(){
		return x;
	}
};

int main(){
	M dummy;
	dummy.setX();
	printf(&quot;%d&quot;,dummy.getX());
	getchar();
	return 0;
}
</code></pre>
<p>Jetzt ist es aber so, dass der Default-Parameter entfallen können soll,<br />
und in diesem Fall soll einfach x-1 verwendet werden können.<br />
Static darf x aber auch nicht sein, es soll jedenfalls jedes Objekt dieser Klasse sein eigenes x bekommen.<br />
Gibt's da einen Trick, wie man das auch mit nicht-Static Members zum Laufen bekommen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1223559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1223559</guid><dc:creator><![CDATA[Default-Nervensäge]]></dc:creator><pubDate>Mon, 05 Feb 2007 22:08:25 GMT</pubDate></item><item><title><![CDATA[Reply to Default-Parameter Problem on Mon, 05 Feb 2007 22:31:02 GMT]]></title><description><![CDATA[<p>Ach sorry, falsch gelesen, du musst die Funktion insert einfach nur überladen:</p>
<pre><code>void insert(){           //wenn kein Argument übergeben wird, wird diese Funktion aufgerufen
        --x;                 //(x = x-1) 
    }
</code></pre>
<p>Nochmal editiert und ein Präfix aus dem Postfix gemacht (bessere Performance).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1223565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1223565</guid><dc:creator><![CDATA[benschni]]></dc:creator><pubDate>Mon, 05 Feb 2007 22:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to Default-Parameter Problem on Tue, 06 Feb 2007 01:38:15 GMT]]></title><description><![CDATA[<p>benschni schrieb:</p>
<blockquote>
<p>Nochmal editiert und ein Präfix aus dem Postfix gemacht (bessere Performance).</p>
</blockquote>
<p>Bei einem int: sicher nicht! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1223590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1223590</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 06 Feb 2007 01:38:15 GMT</pubDate></item></channel></rss>