<?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[vector einer Klasse nur lokal?]]></title><description><![CDATA[<p>Hallo zusammen.<br />
Habe eine Frage:</p>
<p>ich habe eine Klasse</p>
<pre><code>Spieler.h

class Spieler{
    int Spielernummer;
.
.
.
</code></pre>
<p>Und ich habe ein Formular Form1 mit einem Button1 und einem Edit1.</p>
<p>Sobald das Formular geöffnet wird, soll ein vector mit der Klasse &quot;Spieler&quot; angelegt werden(8 Mitspieler).Bei Druck auf den Button1 sollen die Daten vom Edit1-Feld in die jeweilige Mitspielerklasse übernommen werden<br />
(der Einfachheit halber jetzt mal nur 1 Spieler!)</p>
<p>Form1.cpp</p>
<pre><code>void __fastcall TForm1::FormShow(TObject *Sender)
{
    vector&lt;Spieler&gt; Mitspieler(1);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Mitspieler[1].Spielername=Edit1-&gt;Text;
}
</code></pre>
<p>Beim Compilieren bekomme ich folgende Fehlermeldung:<br />
E2451 Undefiniertes Symbol 'Mitspieler'</p>
<p>Wenn ich die Deklaration des vectors aber direkt zum Button1Click kopiere,<br />
dann hab ich keine Fehlermeldung.</p>
<p>Meine Vermutung: der vector ist nur lokal bekannt.</p>
<p>daher die Frage: wie kann ich den global bekannt machen? Oder gibts eine andere Lösung?</p>
<p>Stehe doch ziemlich auf dem Schlauch</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188529/vector-einer-klasse-nur-lokal</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 02:57:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188529.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Aug 2007 12:50:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Wed, 01 Aug 2007 12:50:01 GMT]]></title><description><![CDATA[<p>Hallo zusammen.<br />
Habe eine Frage:</p>
<p>ich habe eine Klasse</p>
<pre><code>Spieler.h

class Spieler{
    int Spielernummer;
.
.
.
</code></pre>
<p>Und ich habe ein Formular Form1 mit einem Button1 und einem Edit1.</p>
<p>Sobald das Formular geöffnet wird, soll ein vector mit der Klasse &quot;Spieler&quot; angelegt werden(8 Mitspieler).Bei Druck auf den Button1 sollen die Daten vom Edit1-Feld in die jeweilige Mitspielerklasse übernommen werden<br />
(der Einfachheit halber jetzt mal nur 1 Spieler!)</p>
<p>Form1.cpp</p>
<pre><code>void __fastcall TForm1::FormShow(TObject *Sender)
{
    vector&lt;Spieler&gt; Mitspieler(1);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Mitspieler[1].Spielername=Edit1-&gt;Text;
}
</code></pre>
<p>Beim Compilieren bekomme ich folgende Fehlermeldung:<br />
E2451 Undefiniertes Symbol 'Mitspieler'</p>
<p>Wenn ich die Deklaration des vectors aber direkt zum Button1Click kopiere,<br />
dann hab ich keine Fehlermeldung.</p>
<p>Meine Vermutung: der vector ist nur lokal bekannt.</p>
<p>daher die Frage: wie kann ich den global bekannt machen? Oder gibts eine andere Lösung?</p>
<p>Stehe doch ziemlich auf dem Schlauch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336525</guid><dc:creator><![CDATA[mganser]]></dc:creator><pubDate>Wed, 01 Aug 2007 12:50:01 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Wed, 01 Aug 2007 13:47:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ja, in deiner Variante ist Mitspieler lokal für FormShow.<br />
Deklariere die Variable als Member von TForm1 dann ist sie in allen Memberfunktione der Klasse sichtbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336574</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 01 Aug 2007 13:47:19 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Wed, 01 Aug 2007 14:01:43 GMT]]></title><description><![CDATA[<p>Jau, danke das geht.<br />
Aber wie kriege ich sie dann für andere Units angesprochen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336592</guid><dc:creator><![CDATA[mganser]]></dc:creator><pubDate>Wed, 01 Aug 2007 14:01:43 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Wed, 01 Aug 2007 14:02:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Siehe FAQ, Abschnitt Forms.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336593</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 01 Aug 2007 14:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Thu, 02 Aug 2007 06:51:03 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>Ja, in deiner Variante ist Mitspieler lokal für FormShow.<br />
Deklariere die Variable als Member von TForm1 dann ist sie in allen Memberfunktione der Klasse sichtbar.</p>
</blockquote>
<p>Wie mache ich das mit der Member?</p>
<p>Habe die Deklaration direkt hinter die &quot;include&quot; Zeilen gesetzt.<br />
Jetzt kann ich compilieren und die Funktionen sind ok, aber im anderen Form ist &quot;Mitspieler&quot; immer noch unbekannt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337009</guid><dc:creator><![CDATA[mganser]]></dc:creator><pubDate>Thu, 02 Aug 2007 06:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Thu, 02 Aug 2007 07:03:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Öffne die Header-Datei des Forms und setzte die Deklaration der Variablen unter das <em>public</em>. Jetzt ist diese Variable in allen Units erreichbar die die Header des Forms included, über die Instanz des Forms.<br />
Ich empfehle erstmal die Grundlagen von C++ zu lernen, insbesondere <a href="http://tutorial.schornboeck.net/oop.htm" rel="nofollow">OOP</a> bevor du dich mitkomplexen GUI-Frames beschäftigst.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337021</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 02 Aug 2007 07:03:39 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Thu, 02 Aug 2007 07:05:28 GMT]]></title><description><![CDATA[<p>Geh in die Header-Datei deiner Form1 und schreibe die Deklaration unter public: .</p>
<p>Dann kannst von anderen Formularen mit Form1-&gt;Mitspieler zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337022</guid><dc:creator><![CDATA[FightingWolf]]></dc:creator><pubDate>Thu, 02 Aug 2007 07:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Thu, 02 Aug 2007 07:30:36 GMT]]></title><description><![CDATA[<p>Ok,OK....</p>
<p>Also ich hab gedacht ich könnte es an einem einfachen Beispiel klären, aber es ist wohl komplizierter.Deshalb nun etwas ausführlicher:</p>
<p>Ich habe 2 Formulare &quot;Hauptbildschirm&quot; und &quot;NeuesSpiel&quot;.<br />
Zusätzlich habe ich noch 2 units &quot;Spieler&quot; und &quot;Karte&quot;.</p>
<p>Die units &quot;Spieler&quot; und &quot;Karte&quot; enthalten die Klasse &quot;Spieler&quot; bzw. &quot;Karte&quot; jeweils in den Headet-Dateien.</p>
<p>In den Formularen sind versch. Eingabefelder und Buttons, alles was man braucht um ein neues Spiel zu starten.....</p>
<p>Nun will ich im Formular &quot;NeuesSpiel&quot; beim drücken des Button1 einen vector der Klasse &quot;Spieler&quot; anlegen.</p>
<pre><code>vector&lt;Spieler&gt; Mitspieler(8);
</code></pre>
<p>Wenn ich diese Deklaration in &quot;NeuesSpiel.cpp&quot; direkt hinter die #include Zeilen setzte, kann ich kompilieren und es funktioniert soweit alles.<br />
Ich kann aber im Formular &quot;Hauptbildschirm&quot; nicht auf <a href="http://Mitspieler.at" rel="nofollow">Mitspieler.at</a>(1) zugreifen, er sagt er kenne &quot;Mitspieler&quot; nicht.</p>
<p>Wenn ich versuche die vector deklaration in die Header-Datei von &quot;NeuesSpiel&quot; also NeuesSpiel.h zu schreiben, dann meckert der Compiler &quot;Undefiniertes Symbol 'Spieler'&quot; und das, obwohl alle header-Dateien in allen units mit #include bekannt sind (gleiches gilt für &lt;vector.h&gt;)</p>
<p>Wahrscheinlich hab ich einen groben Denkfehler gemacht, aber leider komm ich nicht drauf.</p>
<p>Die Grundlagen von C++ hab ich schon intus (Form1-&gt;..... etc.)<br />
Aber ich versuche mich zum ersten Mal mit einem vector....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337039</guid><dc:creator><![CDATA[mganser]]></dc:creator><pubDate>Thu, 02 Aug 2007 07:30:36 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Thu, 02 Aug 2007 07:47:09 GMT]]></title><description><![CDATA[<p>Mit dem Quelltext deiner Header-Datei wo der Vector deklariert wird, wäre es einfacher...</p>
<p>Aber wenn du ihn im public-Teil deklarierst und in der Header-datei auch alle anderen Units includet sind, sollte es eigtl funktionieren...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337051</guid><dc:creator><![CDATA[FightingWolf]]></dc:creator><pubDate>Thu, 02 Aug 2007 07:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Thu, 02 Aug 2007 07:48:59 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Die Grundlagen von C++ hab ich schon intus (Form1-&gt;..... etc.)</p>
</blockquote>
<p>Deine Frage macht aber deutlich das du eben grade im Bereich OOP und Sichtbarkeit eben nicht die Grundlagen beherscht.</p>
<blockquote>
<p>Aber ich versuche mich zum ersten Mal mit einem vector....</p>
</blockquote>
<p>Das ist auch kein Problem mit vector, mit jedem andern Typ würde dir dasselbe passieren.</p>
<blockquote>
<p>Wenn ich versuche die vector deklaration in die Header-Datei von &quot;NeuesSpiel&quot; also NeuesSpiel.h zu schreiben, dann meckert der Compiler &quot;Undefiniertes Symbol 'Spieler'&quot; und das, obwohl alle header-Dateien in allen units mit #include bekannt sind (gleiches gilt für &lt;vector.h&gt;)</p>
</blockquote>
<p>Das liegt höchstwahrscheinlich daran das die Definition vom Type <em>Spieler</em> nicht an der Stelle bekannt ist wo der vector deklariert wird. Am besten lagerst du die die Definition von Spieler in eine eigene Unit aus</p>
<pre><code class="language-cpp">// Headerdatei &quot;Spieler.h&quot;
...
class Spieler
{
};
...

// Headerdatei NeuesSpiel.h
#include &quot;Spieler.h&quot;
...
   public :
     std::vector&lt;Spieler&gt; NeueSpieler;
...
// Implementation Main.cpp
#include &quot;NeuesSpiel.h&quot;
...
  NeuesSpiel-&gt;NeueSpieler.size() // Zugriff über das Form auf den vector
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337052</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 02 Aug 2007 07:48:59 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Thu, 02 Aug 2007 08:05:38 GMT]]></title><description><![CDATA[<p>Danke erstmal für die Antworten.</p>
<p>Habe die Anweisung &quot;#include &quot;Spieler.h&quot; in die &quot;NeuesSpeil.h&quot; eingesetzt, jetzt gehts. War vorher in &quot;NeuesSpiel.cpp&quot; drin!</p>
<p>Werde mich heute Abend nochmal durch die Bücher und Unterlagen zu OOP drucharbeiten.... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337058</guid><dc:creator><![CDATA[mganser]]></dc:creator><pubDate>Thu, 02 Aug 2007 08:05:38 GMT</pubDate></item><item><title><![CDATA[Reply to vector einer Klasse nur lokal? on Thu, 02 Aug 2007 08:10:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Da gibt es auch entsprechende Tutorials im Netz.<br />
z.Bsp.<br />
<a href="http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/script.html" rel="nofollow">http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/script.html</a><br />
<a href="http://www.cpp-tutor.de/cpp/le09/le09_01.htm" rel="nofollow">http://www.cpp-tutor.de/cpp/le09/le09_01.htm</a><br />
<a href="http://tutorial.schornboeck.net/oop2.htm" rel="nofollow">http://tutorial.schornboeck.net/oop2.htm</a><br />
etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337064</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 02 Aug 2007 08:10:22 GMT</pubDate></item></channel></rss>