<?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 Wert für Klassentypen.]]></title><description><![CDATA[<p>Hallo, vielleicht ist das ne extrem blöde frage, hab auf jeden fall per suche nichts gefunden.<br />
ist es möglich sowas zu machen:</p>
<pre><code class="language-cpp">bool methodenName( parameter..,  bool line = false , ... (parameterMitDefault),  map&lt;int ,TF1*&gt; fits = leereMap  );
</code></pre>
<p>geht das? und wenn ja was muss dann da anstelle leereMap stehen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308481/default-wert-für-klassentypen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 18:05:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308481.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Sep 2012 14:01:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 14:01:43 GMT]]></title><description><![CDATA[<p>Hallo, vielleicht ist das ne extrem blöde frage, hab auf jeden fall per suche nichts gefunden.<br />
ist es möglich sowas zu machen:</p>
<pre><code class="language-cpp">bool methodenName( parameter..,  bool line = false , ... (parameterMitDefault),  map&lt;int ,TF1*&gt; fits = leereMap  );
</code></pre>
<p>geht das? und wenn ja was muss dann da anstelle leereMap stehen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254622</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Wed, 26 Sep 2012 14:01:43 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 14:09:57 GMT]]></title><description><![CDATA[<p>M10n schrieb:</p>
<blockquote>
<p>geht das? und wenn ja was muss dann da anstelle leereMap stehen ?</p>
</blockquote>
<p><code>map&lt;int ,TF1*&gt;()</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254630</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 26 Sep 2012 14:09:57 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 14:11:10 GMT]]></title><description><![CDATA[<p>Also, die Funktionsdeklaration wie du sie jetzt zeigst ist Irrsinn. Nein, nein, das geht nicht.</p>
<p>Was willst du erreichen? Siehe nochmal <a href="http://www.c-plusplus.net/forum/200753" rel="nofollow">den Punkt 9 hier an</a>.</p>
<p>Siehe dir auch <a href="http://www.google.de/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;ved=0CCgQFjAA&amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FVariadic_template&amp;ei=bAxjUJXgEs3KtAbZt4CIBQ&amp;usg=AFQjCNFcYA-MCewlq_xtHfBDkxT6v04sBw&amp;sig2=vkDd0650kmqDDWtRIYxRkQ" rel="nofollow">variadic-templates</a> an, das könnte mitunter eine Lösung für dein &quot;variable Anzahl an Funktionsparametern&quot; sein.</p>
<p>Btw: statt <code>leereMap</code> müsste da entweder der Identifier einer anderen Map gleichen Typs sein (also gleiche Template-ID!), oder einfach <code>map&lt;int ,TF1*&gt;()</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254632</guid><dc:creator><![CDATA[Sone_logoff]]></dc:creator><pubDate>Wed, 26 Sep 2012 14:11:10 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 14:14:09 GMT]]></title><description><![CDATA[<p>Ach, stop! Du willst überhaupt keine variable Parameterzahl, sondern du hast einfach abgekürzt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> <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>
<p>Ich dachte, das sollen irgendwie ellipsis für eine variadic-function aus C sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254634</guid><dc:creator><![CDATA[Sone_logoff]]></dc:creator><pubDate>Wed, 26 Sep 2012 14:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 14:24:15 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>M10n schrieb:</p>
<blockquote>
<p>geht das? und wenn ja was muss dann da anstelle leereMap stehen ?</p>
</blockquote>
<p><code>map&lt;int ,TF1*&gt;()</code></p>
</blockquote>
<p>Das war mein naiver ansatz der nicht funktioniert hat.<br />
die ganze deklaration sieht so aus:</p>
<pre><code class="language-cpp">bool drawInto(string , string , bool split = false,  bool with_errors= false , bool line = false , map&lt;int,TF1*&gt; fits =  map&lt;int,TF1*&gt;());
</code></pre>
<p>fehler sind:<br />
`</p>
<p>/Users/../drawer1d.h:43: error: expected ',' or '...' before '&gt;' token</p>
<p>/Users/../drawer1d.h:43: error: wrong number of template arguments (1, should be 4)</p>
<p>/usr/include/c++/4.2.1/bits/stl_map.h:93: error: provided for 'template&lt;class _Key, class _Tp, class _Compare, class _Alloc&gt; class std::map'</p>
<p>/Users/../drawer1d.h:43: error: default argument missing for parameter 7 of 'bool Drawer1D::drawInto(std::string, std::string, bool, bool, bool, std::map&lt;int, TF1*, std::less&lt;int&gt;, std::allocator&lt;std::pair&lt;const int, TF1*&gt; &gt; &gt;, TF1*)'</p>
<p>`<br />
und warum denn bitte parameter 7. sind doch nur 6.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254637</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Wed, 26 Sep 2012 14:24:15 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 14:35:57 GMT]]></title><description><![CDATA[<p>Zeig mal bitte vollständigen Code, um das Problem nachzuvollziehen (siehe Link in meiner Signatur). Ich rate mal: hast du TF1 vorher deklariert? Wenn der Compiler incht weiß, was das sein soll, kommt er ggf. völlig aus dem Tritt und brabbelt nurnoch Mist...<br />
Mal davon abgesehen dass eine Funktion mit 6 Parametern auf ein Designproblem schließen lässt. Sind die wirklich alle nötig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254642</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 26 Sep 2012 14:35:57 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 14:57:18 GMT]]></title><description><![CDATA[<p>also der header sieht so aus:</p>
<pre><code class="language-cpp">#ifndef DRAWER1D_H_
#define DRAWER1D_H_

#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;TF1.h&gt;
#include &lt;map&gt;

struct labeling {
	std::string caption;
	std::string x_axis;
	std::string y_axis;
};

using std::string;
using std::vector;
using std::map;
class Drawer1D {

	std::vector&lt;double&gt; basis ;
	std::vector&lt; std::vector&lt;double&gt; &gt; data;
	std::vector&lt; std::vector&lt;double&gt; &gt; y_errors1;
	std::vector&lt; std::vector&lt;double&gt; &gt; y_errors2;
	std::vector&lt; std::vector&lt;double&gt; &gt; x_errors1;

	std::vector&lt;labeling&gt; names;
public:
	~Drawer1D();
	Drawer1D(int);
...
	bool draw(string , string , map&lt;int,TF1 *&gt; , vector&lt;TF1 *&gt;);

	bool drawInto(string , string , bool split = false,  bool with_errors= false , bool line = false , map&lt;int,TF1 *&gt; fits =  map&lt;int,TF1 *&gt;());

	void setNames(std::vector&lt;labeling&gt;);
...
#endif /* DRAWER1D_H_ */
</code></pre>
<p>das ganze soll das plotten mit root (<a href="http://root.cern.ch" rel="nofollow">root.cern.ch</a>) für meine zwecke einfacher machen.</p>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Ich rate mal: hast du TF1 vorher deklariert? Wenn der Compiler incht weiß, was das sein soll, kommt er ggf. völlig aus dem Tritt und brabbelt nurnoch Mist...<br />
Mal davon abgesehen dass eine Funktion mit 6 Parametern auf ein Designproblem schließen lässt. Sind die wirklich alle nötig?</p>
</blockquote>
<p>also die normale draw-funktion hat bisher funktioniert. muss mit TF1 mehr als include passieren wenn ich es in map&lt;int,TF1 *&gt; fits = map&lt;int,TF1 *&gt;() verwende?<br />
jaa, 6 parameter sind vll. etwas viel, mir fällt aber auch nicht ein wie ich das was ich will schöner haben kann.</p>
<p>die funktion in der cpp(ich weiss nicht ob das irgendwas hilft ausser dass manchen vll. etwas schlecht wird, aber gerade muss es nur so schnell es geht laufen) sieht so aus:</p>
<pre><code class="language-cpp">bool Drawer1D::drawInto(std::string rootfile , std::string name , bool split , bool with_errors , bool line , map&lt;int ,TF1*&gt; fits  ) {

	const char * draw_options = &quot;AP&quot;;
	if(line) draw_options = &quot;AL&quot;;

	TFile  f((rootfile + &quot;.root&quot;).c_str() , &quot;UPDATE&quot; );

	TCanvas *  canvas = new TCanvas(name.c_str());

		if(split) {

			int y_size  = (int) data.size()/2 + data.size()%2;
			int x_size  =  2;
			canvas-&gt;Divide(x_size,y_size);

		}

		TMultiGraph * multiG = new TMultiGraph();

		vector&lt;TGraph * &gt; graphs ;

		vector&lt;vector&lt;double&gt; &gt;::iterator dataset;

		unsigned graph_num = 0;
		for (dataset = data.begin(); dataset != data.end(); ++dataset) {

			if(with_errors) {
				graphs.push_back(new TGraphErrors( basis.size() ));
				std::cout &lt;&lt; basis.size() &lt;&lt; std::endl;
			} else {
				graphs.push_back(new TGraph( basis.size() ));
			}

			for (unsigned int i = 0; i &lt; basis.size(); ++i) {
//				(graphs.back())-&gt;SetPoint(graphs.back()-&gt;GetN() , basis[i],(*dataset)[i] );
				(graphs.back())-&gt;SetPoint(i , basis[i],(*dataset)[i] );

			}

			if(with_errors) {
				std::cout &lt;&lt; graphs.back()-&gt;GetN() &lt;&lt; std::endl;
				for (unsigned int i = 0; i &lt; basis.size(); ++i) {
//					static_cast&lt;TGraphErrors*&gt;(graphs.back())-&gt;SetPointError( 2*i , 0 ,y_errors1[graph_num][i] );
					static_cast&lt;TGraphErrors*&gt;(graphs.back())-&gt;SetPointError( i , 0 ,y_errors1[graph_num][i] );
				}
			}

			int color_code = (graph_num+1 == 10)? graph_num+2 : graph_num+1; // 10 is white....
			(graphs.back())-&gt;SetMarkerColor(color_code);
			(graphs.back())-&gt;SetMarkerStyle(6);
			(graphs.back())-&gt;SetLineColor(color_code);
			if(names.size() &gt; graph_num) {
				graphs.back()-&gt;SetTitle(names[graph_num].caption.c_str());
			}

			if(fits.find(graph_num) != fits.end()) {
				double min, max;
				fits.find(graph_num)-&gt;second-&gt;GetRange(min, max);
				graphs.back()-&gt;Fit(fits.find(graph_num)-&gt;second , &quot;&quot; , &quot; &quot;, min , max);
			}

			if(!split){
				multiG-&gt;Add(graphs.back());
			} else {
				canvas-&gt;cd(graph_num+1);
			graphs.back()-&gt;DrawClone(draw_options);

			}
			graph_num++;

		}

		if(!split){
			canvas-&gt;cd();
			multiG-&gt;Draw(draw_options);
		}

	canvas-&gt;Write((name).c_str());

	return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2254652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254652</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Wed, 26 Sep 2012 14:57:18 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 18:31:51 GMT]]></title><description><![CDATA[<p>hat niemand eine idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254750</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Wed, 26 Sep 2012 18:31:51 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 19:09:49 GMT]]></title><description><![CDATA[<p>Bug in gcc&lt;4.4?</p>
<p>So wie ich das sehe kannst Du das default Argument extra klammern, oder aus drawInto zwei überladene Fkt. machen - allerdings ist das schlecht wg. der default-Argumente vor &quot;fits&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254772</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Wed, 26 Sep 2012 19:09:49 GMT</pubDate></item><item><title><![CDATA[Reply to Default Wert für Klassentypen. on Wed, 26 Sep 2012 21:20:46 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Woohoo,das wars, dank dir!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254805</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Wed, 26 Sep 2012 21:20:46 GMT</pubDate></item></channel></rss>