<?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[Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine Problem mit der Einbindung von &lt;vector&gt;.<br />
Ich würde gerne in meiner Klasse einen Vektor definieren, aber bekomme nur Fehlermeldungen:<br />
error C2143: Syntaxfehler: Es fehlt ';' vor '&lt;'<br />
[code]<br />
#pragma once<br />
#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;cstdlib&gt;<br />
#include &lt;string&gt;<br />
#include &lt;cstring&gt;<br />
#include &lt;vector&gt;<br />
#include &quot;Fuzzyset.h&quot;<br />
namespace settings {<br />
extern std::string standartpfad;<br />
}<br />
class MessreiheFFT<br />
{<br />
public:<br />
// Methoden</p>
<p>MessreiheFFT(void);<br />
~MessreiheFFT(void);<br />
void initFuzzyfeld();<br />
//Die anderer Methoden u Attribute hab ich weggelassen</p>
<p>vector&lt;Fuzzyset*&gt; fuzzyfeld;<br />
};</p>
<p>Jedenfalls bekomme ich von Visual c++ die Fehlermeldung, ich hätte vor vector ein Semikolon vergessen, was ja nicht stimmt. Vielleicht ist noch zu sagen, dass die Basisklasse Fuzzyfeld abstrakt ist. Ich habe zum Test versucht, den gleichen Vector in einer Methode von MessreiheFFT zu instanzieren, und da hats Problemlos geklappt. Das sah so aus:<br />
[cpp]<br />
void MessreiheFFT::initFuzzyfeld()<br />
{<br />
vector&lt;Fuzzyset*&gt; fuzzyfeld;</p>
<p>FuzzyTrapez* leertrpz; //vererbte klasse von Fuzzyset<br />
for (int i=0;i&lt;anzmesswerte;i++)<br />
{<br />
fuzzyfeld.push_back(leertrpz);<br />
}<br />
}</p>
<p>Kann mir jemand sagen, wo mein Fehler ist?<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303259/problem-beim-einbinden-von-lt-vector-gt-in-eine-klasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 14:46:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303259.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 May 2012 09:08:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 09:08:19 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe eine Problem mit der Einbindung von &lt;vector&gt;.<br />
Ich würde gerne in meiner Klasse einen Vektor definieren, aber bekomme nur Fehlermeldungen:<br />
error C2143: Syntaxfehler: Es fehlt ';' vor '&lt;'<br />
[code]<br />
#pragma once<br />
#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;cstdlib&gt;<br />
#include &lt;string&gt;<br />
#include &lt;cstring&gt;<br />
#include &lt;vector&gt;<br />
#include &quot;Fuzzyset.h&quot;<br />
namespace settings {<br />
extern std::string standartpfad;<br />
}<br />
class MessreiheFFT<br />
{<br />
public:<br />
// Methoden</p>
<p>MessreiheFFT(void);<br />
~MessreiheFFT(void);<br />
void initFuzzyfeld();<br />
//Die anderer Methoden u Attribute hab ich weggelassen</p>
<p>vector&lt;Fuzzyset*&gt; fuzzyfeld;<br />
};</p>
<p>Jedenfalls bekomme ich von Visual c++ die Fehlermeldung, ich hätte vor vector ein Semikolon vergessen, was ja nicht stimmt. Vielleicht ist noch zu sagen, dass die Basisklasse Fuzzyfeld abstrakt ist. Ich habe zum Test versucht, den gleichen Vector in einer Methode von MessreiheFFT zu instanzieren, und da hats Problemlos geklappt. Das sah so aus:<br />
[cpp]<br />
void MessreiheFFT::initFuzzyfeld()<br />
{<br />
vector&lt;Fuzzyset*&gt; fuzzyfeld;</p>
<p>FuzzyTrapez* leertrpz; //vererbte klasse von Fuzzyset<br />
for (int i=0;i&lt;anzmesswerte;i++)<br />
{<br />
fuzzyfeld.push_back(leertrpz);<br />
}<br />
}</p>
<p>Kann mir jemand sagen, wo mein Fehler ist?<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209751</guid><dc:creator><![CDATA[DonJonny]]></dc:creator><pubDate>Wed, 09 May 2012 09:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 09:11:04 GMT]]></title><description><![CDATA[<p>Du hast den Namespace nicht angegeben: <code>std::vector</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209752</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 09 May 2012 09:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 09:24:10 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Du hast den Namespace nicht angegeben: <code>std::vector</code></p>
</blockquote>
<p>Danke, jetzt klappts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209755</guid><dc:creator><![CDATA[DonJonny]]></dc:creator><pubDate>Wed, 09 May 2012 09:24:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 10:43:36 GMT]]></title><description><![CDATA[<p>Hey,<br />
ich habe wohl doch noch ein Problem mit dem vektor, welches mich echt ratlos stimmt. Und zwar kompiliert er das Programm nur manchmal:<br />
Ich habe es in einer Version kompiliert, die funktionierte und habe dann etwas an der Klasse Fuzzyset geändert, worauf nicht mehr kompiliert wurde. Nachdem ich die Änderungen rückgangig gemacht hatte und den alten Quellcode 1 zu 1 wieder hergestellt hatte, zeigte mir der Compiler bei der deklaration des Vektors in MessreiheFFT.h an, er kenne die Klasse Fuzzyset nicht.<br />
Die Kompilierung klappte erst wieder, nachdem ich den vekto auskommentiert, kompieliert und wieder eingebunden hatte.<br />
Wisst ihr da weiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209785</guid><dc:creator><![CDATA[DonJonny]]></dc:creator><pubDate>Wed, 09 May 2012 10:43:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 10:46:06 GMT]]></title><description><![CDATA[<p>DonJonny schrieb:</p>
<blockquote>
<p>Hey,<br />
ich habe wohl doch noch ein Problem mit dem vektor, welches mich echt ratlos stimmt. Und zwar kompiliert er das Programm nur manchmal:<br />
Ich habe es in einer Version kompiliert, die funktionierte und habe dann etwas an der Klasse Fuzzyset geändert, worauf nicht mehr kompiliert wurde. Nachdem ich die Änderungen rückgangig gemacht hatte und den alten Quellcode 1 zu 1 wieder hergestellt hatte, zeigte mir der Compiler bei der deklaration des Vektors in MessreiheFFT.h an, er kenne die Klasse Fuzzyset nicht.<br />
Die Kompilierung klappte erst wieder, nachdem ich den vekto auskommentiert, kompieliert und wieder eingebunden hatte.<br />
Wisst ihr da weiter?</p>
</blockquote>
<p>Zeig mal Code. So können wir dir nicht helfen, da wir keine Wahrsager sind. Und vergiss nicht die C++-Code Tags.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209787</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 May 2012 10:46:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 11:12:20 GMT]]></title><description><![CDATA[<p>Mmh,<br />
also der ganze Quelltext wäre wohl ein bisschen lang. Das sind schon einige 1000 Lines.. Ich versuch mal die relevanten Teile zu geben...</p>
<pre><code class="language-cpp">#pragma once
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;cstdlib&gt;
#include &lt;string&gt;
#include &lt;cstring&gt;
#include &lt;vector&gt;
#include &quot;Fuzzyset.h&quot;

namespace settings {
    extern std::string standartpfad;
}

class MessreiheFFT
{ 
public:
        void initFuzzyfeld();
	std::vector &lt;Fuzzyset*&gt; fuzzyfeld;
}
</code></pre>
<p>Dann die zugehörigen Teile der MessreiheFFT.cpp</p>
<pre><code class="language-cpp">// MessreiheFFT.cpp

#include &quot;MessreiheFFT.h&quot;

void MessreiheFFT::initFuzzyfeld()
{
	FuzzyTrapez links;
	FuzzyTrapez rechts;
	FuzzyTrapez* leertrpz = new FuzzyTrapez[2];
	leertrpz[0] = links;
	leertrpz[1] = rechts;
	for (int i=0;i&lt;anzmesswerte;i++)
	{
		fuzzyfeld.push_back(leertrpz);
	}
	fuzzyfeld[3][0].graph();
}
</code></pre>
<p>und die Headerdatei zu Fuzzy Trapez:</p>
<pre><code class="language-cpp">#pragma once
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;cstdlib&gt;
#include &lt;string&gt;
#include &quot;MessreiheFFT.h&quot;

class Fuzzyset
{
	friend class MessreiheFFT;
public:
	Fuzzyset(void);
	~Fuzzyset(void);
	virtual void print(void)=0;
	virtual void graph(void)=0;
            virtual void graph(char* name)=0;
};

class FuzzyLR: public Fuzzyset
{
public:
	FuzzyLR(void);
	//~FuzzyLR(void);
	void print(void);
	void graph(void);
	void graph(char* name);

};

class FuzzyTrapez: public FuzzyLR
{
public:
	FuzzyTrapez(void);
	//~FuzzyTrapez(void);

};
</code></pre>
<p>und die passende Fehlermeldung mit Verweis auf den Vektor:<br />
error C2065: 'Fuzzyset': nichtdeklarierter Bezeichner</p>
<p>Ich habe 2 Ideen, an denen es vielleicht liegen könnte:<br />
1.Ich habe alle verwanten Klassen von Fuzzyset in eine headerdatei und auch in einer .cpp untergebracht.<br />
2.Ich habe den Vektor nicht im Destruktor wieder gelöscht. Kann es daran liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209791</guid><dc:creator><![CDATA[DonJonny]]></dc:creator><pubDate>Wed, 09 May 2012 11:12:20 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 11:19:12 GMT]]></title><description><![CDATA[<p>1. Achte darauf, dass du alles richtig inkludierst (inkludierst du z. B. <em>die Headerdatei zu Fuzzy Trapez</em>?)<br />
2. <strong>Deklaration</strong> in den Header, <strong>Definition</strong> in die Source. Nich' vergessen,</p>
<blockquote>
<p>error C2065: 'Fuzzyset': nichtdeklarierter Bezeichner</p>
</blockquote>
<p>In welcher File, welche line?<br />
Du vergisst anscheinend einfach Punkt 2. von oben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209794</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 May 2012 11:19:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 11:29:44 GMT]]></title><description><![CDATA[<p>Du hast eine zirkulare Abhängigkeit zwischen deinen beiden Headern. Ein include ist nur eine dumme Textersetzung, am Ende steht einer von beiden Headern vorne und der andere wird nicht mehr davor eingesetzt, wegen dem pragma once (aber mach das nicht weg! das wäre nicht die Lösung).</p>
<p>Messreihe braucht aber den Fuzzysetheader nicht, weil in der Messreihe nur Pointer auf Fuzzyset vorkommen, da reicht eine Forward-Deklaration. Und Fuzzyset braucht wieder die Messreihe gar nicht, weil für ein friend brauchst man (zumindest hier) nicht einmal eine Forward-Deklaration. Sei mit dem Einbinden von Headern sparsam. Binde genau das ein, was du brauchst. Verlass dich aber wiederum nicht darauf, dass andere Header (über die du keine Kontrolle hast) indirekt etwas einbinden, was du brauchst.</p>
<p>Ein paar Sachen zu deinem Code:<br />
- globale Variablen<br />
- Ein Klassenmember mit init im Namen klingt so, als sollte er ein Konstruktor sein<br />
- Du hast riesige Speicherlöcher, da du dich selber in dynamischer Speicherverwaltung versuchst, aber keine Ahnung von den Grundlagen hast. Es sieht so aus, als sollte dein vector gar keine Pointer auf ein Fuzzyfeld enthalten, sondern konkrete Fuzzytrapezobjekte.<br />
- Soll die Messreihe wirklich ein friend vom Fuzzyfeld sein? friend ist die starkste Bindung zwischen Klassen die C++ kennt. Viele Anfänger halten es für ein Mittel um Schreibarbeit und/oder sauberes Design einzusparen. So ist das definitiv nicht gedacht.<br />
- Fuzzyset braucht auf jeden Fall einen virtuellen Destruktor, da du anscheinend vor hast, Polymorphie zu betreiben.</p>
<p>Der dritte und der fünfte Punkt sind ganz schwerwiegende Fehler. Die anderen Punkte sind sehr schlechte Designentscheidungen, die zwar technisch gesehen (noch) funktionieren, dir das Leben aber noch sehr schwer machen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209795</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 09 May 2012 11:29:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 11:32:23 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>1. Achte darauf, dass du alles richtig inkludierst (inkludierst du z. B. <em>die Headerdatei zu Fuzzy Trapez</em>?)</p>
</blockquote>
<p>ich habe jeweils in der Headerdatei die .h der anderen Klassen inkludiert. Das müsste doch dann passen, oder (und natürlich die Klasse.h in der jeweilige Klasse.cpp)?</p>
<blockquote>
<p>2. <strong>Deklaration</strong> in den Header, <strong>Definition</strong> in die Source. Nich' vergessen,</p>
<blockquote>
<p>error C2065: 'Fuzzyset': nichtdeklarierter Bezeichner</p>
</blockquote>
<p>In welcher File, welche line?</p>
</blockquote>
<p>bei der Deklaration des Vektors in der Headerdatei</p>
<blockquote>
<p>Du vergisst anscheinend einfach Punkt 2. von oben.</p>
</blockquote>
<p>[/quote]da habe ich eigentlich penibel drauf geauchtet... [quote]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209797</guid><dc:creator><![CDATA[DonJonny]]></dc:creator><pubDate>Wed, 09 May 2012 11:32:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 11:39:32 GMT]]></title><description><![CDATA[<p>DonJonny schrieb:</p>
<blockquote>
<p>da habe ich eigentlich penibel drauf geauchtet...</p>
</blockquote>
<p>Oh nein, ich meinte Punkt <strong>1</strong>. Ich denke du hast vergessen, den Header von deiner Klasse zu inkludieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209799</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 May 2012 11:39:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 12:51:24 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Du hast eine zirkulare Abhängigkeit zwischen deinen beiden Headern. Ein include ist nur eine dumme Textersetzung, am Ende steht einer von beiden Headern vorne und der andere wird nicht mehr davor eingesetzt, wegen dem pragma once (aber mach das nicht weg! das wäre nicht die Lösung).</p>
<p>Messreihe braucht aber den Fuzzysetheader nicht, weil in der Messreihe nur Pointer auf Fuzzyset vorkommen, da reicht eine Forward-Deklaration. Und Fuzzyset braucht wieder die Messreihe gar nicht, weil für ein friend brauchst man (zumindest hier) nicht einmal eine Forward-Deklaration. Sei mit dem Einbinden von Headern sparsam. Binde genau das ein, was du brauchst. Verlass dich aber wiederum nicht darauf, dass andere Header (über die du keine Kontrolle hast) indirekt etwas einbinden, was du brauchst.</p>
</blockquote>
<p>Könntest du mir vielleicht mal kurz zeigen, wie so eine Forward Deklaration in meinem Fall aussehen würde? Ich steh mit meinen Programmierkenntnissen leider noch ziemlich am Anfang...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209825</guid><dc:creator><![CDATA[DonJonny]]></dc:creator><pubDate>Wed, 09 May 2012 12:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 13:12:50 GMT]]></title><description><![CDATA[<p>DonJonny schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Du hast eine zirkulare Abhängigkeit zwischen deinen beiden Headern. Ein include ist nur eine dumme Textersetzung, am Ende steht einer von beiden Headern vorne und der andere wird nicht mehr davor eingesetzt, wegen dem pragma once (aber mach das nicht weg! das wäre nicht die Lösung).</p>
<p>Messreihe braucht aber den Fuzzysetheader nicht, weil in der Messreihe nur Pointer auf Fuzzyset vorkommen, da reicht eine Forward-Deklaration. Und Fuzzyset braucht wieder die Messreihe gar nicht, weil für ein friend brauchst man (zumindest hier) nicht einmal eine Forward-Deklaration. Sei mit dem Einbinden von Headern sparsam. Binde genau das ein, was du brauchst. Verlass dich aber wiederum nicht darauf, dass andere Header (über die du keine Kontrolle hast) indirekt etwas einbinden, was du brauchst.</p>
</blockquote>
<p>Könntest du mir vielleicht mal kurz zeigen, wie so eine Forward Deklaration in meinem Fall aussehen würde? Ich steh mit meinen Programmierkenntnissen leider noch ziemlich am Anfang...</p>
</blockquote>
<p>Eine Vorwärtsdeklaration braucht man bei zyklischen Abhängigkeiten von Objekten oder Funktionen. Beispiel:</p>
<pre><code class="language-cpp">class A; // Vorwärtsdeklaration
</code></pre>
<p>Damit existiert eine Klasse A. Von der weiss aber keiner die Größe oder deren Elemente, also können im Moment nur Zeiger oder Referenzen dessen Typs erstellt werden (sonst spuckt der Compiler was aus).</p>
<pre><code class="language-cpp">void func(int); //Auch eine Vorwärtsdeklaration
</code></pre>
<p>Am schlauesten ist das folgende Konstrukt:</p>
<pre><code class="language-cpp">Vorwärtsdeklaration A
Vorwärtsdeklaration B

Definition der Klasse A//Zu diesem Zeitpunkt können Funktionen als Parameter Referenzen und Pointer auf die beiden Klassen nehmen 
Definition der Klasse B

Implementierung aller Methoden von A //Zu diesem Zeitpunkt können alle Funktionen beider Klassen verwendet werden (egal von wo).  Es können jetzt auch Instanzen beider Klassen erstellt werden
Implementierung aller Methoden von B
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2209837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209837</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 May 2012 13:12:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 13:12:27 GMT]]></title><description><![CDATA[<p>DonJonny schrieb:</p>
<blockquote>
<p>Könntest du mir vielleicht mal kurz zeigen, wie so eine Forward Deklaration in meinem Fall aussehen würde? Ich steh mit meinen Programmierkenntnissen leider noch ziemlich am Anfang...</p>
</blockquote>
<p>Ich zeige dir jetzt den ultimativen Geheimtipp der Computerbedienung, der Programmierung und des Lebens allgemein:<br />
<a href="https://www.google.de/search?&amp;q=Forward-Deklaration" rel="nofollow">Google: Forward-Deklaration</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209838</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 09 May 2012 13:12:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 16:01:50 GMT]]></title><description><![CDATA[<p>Danke für eure Hilfe.<br />
Nun ein anderes Problem:<br />
ich habe ja den Vector als Attribut in meiner Klasse gespeichert. Jetzt habe ich eine Methode geschrieben, um diesen zu manipulieren. Wenn ich jetzt allerdings von einer anderen Methode darauf zugreifen möchte, ist der Vektor wieder leer. Was habe ich falsch gemacht? Danke für eure Hilfe</p>
<pre><code class="language-cpp">class MessreiheFFT
{
...
     void methodeB();
     void initFuzzyfeld();
     std::vector &lt;Fuzzyset**&gt; fuzzyfeld;
}
;
void MessreiheFFT::initFuzzyfeld()
{
	for (int i=0;i&lt;anzmessdaten;i++)
	{
		Fuzzyset* hilf[2];
		hilf[0] = new FuzzyTrapez;
		hilf[1] = new FuzzyTrapez;
		fuzzyfeld.push_back(hilf);
	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2209914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209914</guid><dc:creator><![CDATA[DonJonny]]></dc:creator><pubDate>Wed, 09 May 2012 16:01:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 16:27:36 GMT]]></title><description><![CDATA[<p>DonJonny schrieb:</p>
<blockquote>
<p>Wenn ich jetzt allerdings von einer anderen Methode darauf zugreifen möchte, ist der Vektor wieder leer.</p>
</blockquote>
<p>Zeig mal die Methode, die dann auf den <code>vector</code> zugreift.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209923</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 May 2012 16:27:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 16:32:40 GMT]]></title><description><![CDATA[<p>DonJonny schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Fuzzyset* hilf[2];
		hilf[0] = new FuzzyTrapez;
		hilf[1] = new FuzzyTrapez;
		fuzzyfeld.push_back(hilf);
</code></pre>
</blockquote>
<p>Preisfrage: Wann wird das Array hilf zerstört? Was genau wird in dem Vektor gespeichert?</p>
<p>Wenn du das nicht beantworten kannst, befinden sich deutlich zuviele Sternchen in deinem Quellcode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209924</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 09 May 2012 16:32:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Einbinden von &amp;lt;vector&amp;gt; in eine Klasse on Wed, 09 May 2012 17:04:07 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class MessreiheFFT
{
...
     void methodeB();
     void initFuzzyfeld();
     std::vector &lt;Fuzzyset**&gt; fuzzyfeld;
}
;
void MessreiheFFT::initFuzzyfeld()
{
    for (int i=0;i&lt;anzmessdaten;i++)
    {
        Fuzzyset* hilf[2];
        hilf[0] = new FuzzyTrapez;
        hilf[1] = new FuzzyTrapez;
        fuzzyfeld.push_back(hilf);
    }

}
</code></pre>
<p>Ich glaube du hast da was nicht verstanden. <strong>Du sollst nicht selbst dynamisch Speicher allokieren.</strong> Wenn wir dir sagen, benutze STL-Container die das professionel implementiert für dich erledigen, dann sollst du sie <em>ausschließlich</em> verwenden, d. h. nicht einen <code>vector</code> mit Zeigern auf andere C-Style Arrays.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209937</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 May 2012 17:04:07 GMT</pubDate></item></channel></rss>