<?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[Konstruktor]]></title><description><![CDATA[<p>Ich habe eine Frage:</p>
<p>Im Konstruktor fülle ich die Vektoren mit Daten aus einem Textfile mit unbestimmter Länge.<br />
Danach brauche ich die Länge des Vektors, um den Mittelwert usw. zu berechnen.</p>
<p>Der Konstruktor sieht so aus:</p>
<pre><code class="language-cpp">vector &lt;double&gt; v1;
vector &lt;double&gt; v2;
vector &lt;double&gt; v3;
vector &lt;double&gt; v4;

Winding::Winding()
{
	ifstream Windung (&quot;windung_m0test.txt&quot;);

	if (Windung.is_open())
	{
		for (double first, second, third, fourth; 
			  Windung &gt;&gt; first &gt;&gt; second &gt;&gt; third &gt;&gt; fourth; 
			  v1.push_back(first), v2.push_back(second), v3.push_back(third), v4.push_back(fourth));

		Windung.close();
	}
	else
	{
		cerr &lt;&lt; &quot;Unable to open file&quot;;
	}
}
</code></pre>
<p>Mit</p>
<pre><code class="language-cpp">v1.size()
</code></pre>
<p>habe ich versucht die Vektorlänge auszugeben. Also mit diesem Wert weiterzurechnen. Aber obwohl der Vektor nur 29 Einträge hat, gibt er mir 58 an.</p>
<p>Was mache ich falsch? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
(liegt es daran, dass ich im main() den Konstruktor zweimal aufrufe??)</p>
<pre><code class="language-cpp">int main ()
{
	double m = 0;

	Winding();
	Winding loop;
	loop.mean_winding(m);
return 0;
}
</code></pre>
<p>Das Textfile sieht so aus:<br />
1 0 0 0<br />
0 1 0 0<br />
0 0 0 1<br />
1 0 0 0<br />
1 0 0 0<br />
usw.</p>
<p>Danke<br />
Nijntje</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303545/konstruktor</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 09:16:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303545.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 May 2012 15:23:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor on Wed, 16 May 2012 15:23:06 GMT]]></title><description><![CDATA[<p>Ich habe eine Frage:</p>
<p>Im Konstruktor fülle ich die Vektoren mit Daten aus einem Textfile mit unbestimmter Länge.<br />
Danach brauche ich die Länge des Vektors, um den Mittelwert usw. zu berechnen.</p>
<p>Der Konstruktor sieht so aus:</p>
<pre><code class="language-cpp">vector &lt;double&gt; v1;
vector &lt;double&gt; v2;
vector &lt;double&gt; v3;
vector &lt;double&gt; v4;

Winding::Winding()
{
	ifstream Windung (&quot;windung_m0test.txt&quot;);

	if (Windung.is_open())
	{
		for (double first, second, third, fourth; 
			  Windung &gt;&gt; first &gt;&gt; second &gt;&gt; third &gt;&gt; fourth; 
			  v1.push_back(first), v2.push_back(second), v3.push_back(third), v4.push_back(fourth));

		Windung.close();
	}
	else
	{
		cerr &lt;&lt; &quot;Unable to open file&quot;;
	}
}
</code></pre>
<p>Mit</p>
<pre><code class="language-cpp">v1.size()
</code></pre>
<p>habe ich versucht die Vektorlänge auszugeben. Also mit diesem Wert weiterzurechnen. Aber obwohl der Vektor nur 29 Einträge hat, gibt er mir 58 an.</p>
<p>Was mache ich falsch? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
(liegt es daran, dass ich im main() den Konstruktor zweimal aufrufe??)</p>
<pre><code class="language-cpp">int main ()
{
	double m = 0;

	Winding();
	Winding loop;
	loop.mean_winding(m);
return 0;
}
</code></pre>
<p>Das Textfile sieht so aus:<br />
1 0 0 0<br />
0 1 0 0<br />
0 0 0 1<br />
1 0 0 0<br />
1 0 0 0<br />
usw.</p>
<p>Danke<br />
Nijntje</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212313</guid><dc:creator><![CDATA[nijntje]]></dc:creator><pubDate>Wed, 16 May 2012 15:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor on Wed, 16 May 2012 15:35:38 GMT]]></title><description><![CDATA[<p>nijntje schrieb:</p>
<blockquote>
<p>Mit</p>
<pre><code class="language-cpp">v1.size()
</code></pre>
<p>habe ich versucht die Vektorlänge auszugeben. Also mit diesem Wert weiterzurechnen. Aber obwohl der Vektor nur 29 Einträge hat, gibt er mir 58 an.</p>
</blockquote>
<p>Und woher weißt du so genau, dass du nur 29 Einträge hast, obwohl der vector doch 58 meldet?</p>
<p>Deine Zeile 5 in der main macht übrigens nicht das was du denkst. Lass sie einfach weg.</p>
<p>P.S.: Ich hoffe mal, dass die globalen vectoren hier nur Schreibfaulheit sind und die in Wirklichkeit Klassenmember sind. Ansonsten habe ich hiermit gerade dein Problem gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212320</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 16 May 2012 15:35:38 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor on Wed, 16 May 2012 15:47:16 GMT]]></title><description><![CDATA[<p>Ja, da liegt wohl der Fehler.<br />
kannst du mir das genauer erklären?</p>
<p>Ich arbeite das erste Mal mit Vektoren und wollte diese ja auch in die Klasse schreiben, aber da bekomme ich immer Fehlermeldungen wie:</p>
<p>error: ISO C++ forbids declaration of 'vector' with no type</p>
<p>Deshalb habe ich sie global deklariert. Darf man nicht, oder?<br />
Wie deklariere ich diese Vektoren nun korrekt?</p>
<p>Und muss man nicht den Konstruktor aufrufen, wenn er wie hier Vektoren initialisiert?</p>
<p>Danke für die schnelle Antwort <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212322</guid><dc:creator><![CDATA[nijntje]]></dc:creator><pubDate>Wed, 16 May 2012 15:47:16 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor on Wed, 16 May 2012 15:57:07 GMT]]></title><description><![CDATA[<p>Na, wenn du sie global machst, dann wird bei jedem Konstruktoraufruf was angehängt. Da du insgesamt zwei Mal den Konstruktor aufgerufen hast, hattest du alles doppelt. Doktor aber nicht daran rum, mach das unbedingt gleich richtig!</p>
<p>Die Fehlermeldung deutet darauf hin, dass du ein #include&lt;vector&gt; vergessen hast und/oder das std:: vor dem vector vergessen hast. Falls es damit nicht funktionieren sollte, dann melde dich noch einmal.</p>
<p>Guck dir übrigens mal an, was der Destruktor eines ifstreams macht und was das für deine Zeile 16 bedeutet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212326</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 16 May 2012 15:57:07 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor on Wed, 16 May 2012 16:16:46 GMT]]></title><description><![CDATA[<p>super danke, läuft...</p>
<p>Nein, ich weiss nicht genau, was der Destruktor macht in Zeile 16.<br />
Eigentlich wäre der Aufruf gar nicht nötig, oder?</p>
<p>Werde mir das noch genauer anschauen.</p>
<p>Nochmals danke<br />
Lg<br />
nijntje</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212331</guid><dc:creator><![CDATA[nijntje]]></dc:creator><pubDate>Wed, 16 May 2012 16:16:46 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor on Wed, 16 May 2012 16:53:04 GMT]]></title><description><![CDATA[<p>nijntje schrieb:</p>
<blockquote>
<p>Nein, ich weiss nicht genau, was der Destruktor macht in Zeile 16.</p>
</blockquote>
<p>Zeile 16 ist nicht der Destruktoraufruf. Der kommt in Zeile 22.</p>
<blockquote>
<p>Eigentlich wäre der Aufruf gar nicht nötig, oder?</p>
</blockquote>
<p>So ist es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212342</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 16 May 2012 16:53:04 GMT</pubDate></item></channel></rss>