<?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[Verwirrt über Sichtbarkeit von Variablen in Klassen]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich bin Anfänger in C++ und möchte ein kleines Programm schreiben und habe folgendes Problem.<br />
Der Teil um den es geht soll aus dem Kommandozeilenargumenten Einstellungen wie die Server Adresse und so entnehmen. Dazu dient <a href="http://menu.cc" rel="nofollow">menu.cc</a>, ich übergebe argc und argv und am Ende sollen diese Member von Menu sein....</p>
<p>menu.h</p>
<pre><code class="language-cpp">class Menu
{
	public:
		char Pfad[1000];
		char Server[255];
		char User[255];
};
</code></pre>
<p><a href="http://menu.cc" rel="nofollow">menu.cc</a></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;getopt.h&gt;
#include &quot;menu.h&quot;

int f_Menu(void);

int Menu::neu(int int_menu , char* achr_menu[])
{
	int int_opt , int_re = 0 ; 
	while ((int_opt = getopt(int_menu,achr_menu,&quot;P:S:&quot;))!= EOF )
	{/*While 1*/
	std::cout &lt;&lt; &quot;getopt&quot; &lt;&lt; int_opt &lt;&lt; &quot; : &quot; &lt;&lt; optarg &lt;&lt; &quot; \n&quot;;
		switch (int_opt)
		{/*switch1*/			
		   case 'P': //Pfad
			strncpy( Pfad , optarg , sizeof(Pfad)-1 );
			break;
		   case 'S': //Server
		    strncpy( Server , optarg , sizeof(Server)-1 );
			break;
		}/*switch1*/		
    }/*While 1*/	 
	int_re = f_Menu();
	return int_re;
}

int f_Menu(void)
{
	int int_re=0;	
	std::cout &lt;&lt; &quot;------ Ihre Eingaben ------\n&quot;;    
	//Pfad
	std::cout &lt;&lt; &quot;Daten Pfad : &quot; &lt;&lt; Pfad &lt;&lt; &quot;\n&quot;;    			
	return int_re;
}
</code></pre>
<p>Die ersten Versuch waren auch ganz positiv, nur als ich die Funktion F_Menu einführte meldete g++.</p>
<pre><code>menu.cc: In function 'int f_Menu()':
menu.cc:32: error: 'Pfad' was not declared in this scope
</code></pre>
<p>Bin ernstlich verwirrt... wieso sehe ich Pfad nun auf einmal in der zweiten Funktion nicht mehr???? In der ersten (int Menu::neu) funktioniert das.</p>
<p>Schon mal danke und so......</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235946/verwirrt-über-sichtbarkeit-von-variablen-in-klassen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 03:13:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235946.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Mar 2009 20:59:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verwirrt über Sichtbarkeit von Variablen in Klassen on Sun, 08 Mar 2009 20:59:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich bin Anfänger in C++ und möchte ein kleines Programm schreiben und habe folgendes Problem.<br />
Der Teil um den es geht soll aus dem Kommandozeilenargumenten Einstellungen wie die Server Adresse und so entnehmen. Dazu dient <a href="http://menu.cc" rel="nofollow">menu.cc</a>, ich übergebe argc und argv und am Ende sollen diese Member von Menu sein....</p>
<p>menu.h</p>
<pre><code class="language-cpp">class Menu
{
	public:
		char Pfad[1000];
		char Server[255];
		char User[255];
};
</code></pre>
<p><a href="http://menu.cc" rel="nofollow">menu.cc</a></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;getopt.h&gt;
#include &quot;menu.h&quot;

int f_Menu(void);

int Menu::neu(int int_menu , char* achr_menu[])
{
	int int_opt , int_re = 0 ; 
	while ((int_opt = getopt(int_menu,achr_menu,&quot;P:S:&quot;))!= EOF )
	{/*While 1*/
	std::cout &lt;&lt; &quot;getopt&quot; &lt;&lt; int_opt &lt;&lt; &quot; : &quot; &lt;&lt; optarg &lt;&lt; &quot; \n&quot;;
		switch (int_opt)
		{/*switch1*/			
		   case 'P': //Pfad
			strncpy( Pfad , optarg , sizeof(Pfad)-1 );
			break;
		   case 'S': //Server
		    strncpy( Server , optarg , sizeof(Server)-1 );
			break;
		}/*switch1*/		
    }/*While 1*/	 
	int_re = f_Menu();
	return int_re;
}

int f_Menu(void)
{
	int int_re=0;	
	std::cout &lt;&lt; &quot;------ Ihre Eingaben ------\n&quot;;    
	//Pfad
	std::cout &lt;&lt; &quot;Daten Pfad : &quot; &lt;&lt; Pfad &lt;&lt; &quot;\n&quot;;    			
	return int_re;
}
</code></pre>
<p>Die ersten Versuch waren auch ganz positiv, nur als ich die Funktion F_Menu einführte meldete g++.</p>
<pre><code>menu.cc: In function 'int f_Menu()':
menu.cc:32: error: 'Pfad' was not declared in this scope
</code></pre>
<p>Bin ernstlich verwirrt... wieso sehe ich Pfad nun auf einmal in der zweiten Funktion nicht mehr???? In der ersten (int Menu::neu) funktioniert das.</p>
<p>Schon mal danke und so......</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676386</guid><dc:creator><![CDATA[magier-phil]]></dc:creator><pubDate>Sun, 08 Mar 2009 20:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrt über Sichtbarkeit von Variablen in Klassen on Sun, 08 Mar 2009 21:13:01 GMT]]></title><description><![CDATA[<p>Die Funktion f_menu ist keine Methode der Klasse Menu und kann ohne Instanz der entsprechenden Klasse nicht auf deren Member zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676392</guid><dc:creator><![CDATA[Mehlvogel]]></dc:creator><pubDate>Sun, 08 Mar 2009 21:13:01 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrt über Sichtbarkeit von Variablen in Klassen on Mon, 09 Mar 2009 08:05:50 GMT]]></title><description><![CDATA[<p>magier-phil schrieb:</p>
<blockquote>
<p>Ich bin Anfänger in C++ und möchte ein kleines Programm schreiben und habe folgendes Problem.</p>
</blockquote>
<p>Wenn wir mal von den Typischen C-Aspekten deiner Anwendung absehen (und den Problemen die du dir damit noch erkaufen wirst; es sieht eher nach C mit Klassen, als C++ aus), sind deine wesentlichen beiden Probleme wohl:</p>
<p>a) Gültigkeitsbereich (Scope) von Variablen<br />
b) Was ist eine Klasse, und was ein Objekt</p>
<p>menu.h</p>
<pre><code class="language-cpp">class Menu
{
  public:
    char Pfad[1000];
    char Server[255];
    char User[255];
};
</code></pre>
<p>Eine Klasse ist im wesentlichen eine Schablone. Hier besagst du das jede Instanz (konkrete Variable) der Klasse Menu über die Membervariablen Pfad, Server, User verfügt. Diese Membervariablen gehören eindeutig zu der Instanz, und können auch nur über diese zugegriffen werden.</p>
<pre><code class="language-cpp">...
Menu m; // Wenn du eine Instanz von Menu anlegst, kannst du über
        // m.Pfad beispielsweise auf dessen Membervariable Pfad zugreifen
Menu m2; // Dies ist eine weitere Instanz der Klasse, mit einem eigenen 
         // Variablensatz
...
</code></pre>
<p>Zudem gelten Variablen immer nur von ihrer Deklaration bis zum Ende des ihnen umgebenen Kontextes.</p>
<pre><code class="language-cpp">int main()
{
  int i = 2;
  {
    int j = 4;
  } // &lt;-- Hier hört j auf zu existieren
} // &lt;-- Hier hört i auf zu existieren
</code></pre>
<p>Vielleicht solltest du dir erst einmal ein gutes C++ Buch antun (z.B. <a href="http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html" rel="nofollow">Thinking in C++</a> oder den C++ Primer).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676484</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 09 Mar 2009 08:05:50 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrt über Sichtbarkeit von Variablen in Klassen on Mon, 09 Mar 2009 13:54:27 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14941">@asc</a><br />
Ist vielleicht besser anstatt sofort das Array in der Klasse, im Konstruktur mit new zu reservieren. Und im Destruktor dann wunderschön deleten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676732</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Mon, 09 Mar 2009 13:54:27 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrt über Sichtbarkeit von Variablen in Klassen on Mon, 09 Mar 2009 14:00:03 GMT]]></title><description><![CDATA[<p>way schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14941">@asc</a><br />
Ist vielleicht besser anstatt sofort das Array in der Klasse, im Konstruktur mit new zu reservieren. Und im Destruktor dann wunderschön deleten...</p>
</blockquote>
<p>Ich würde garnicht mit Arrays arbeiten (alleine schon wegen Kopierverhalten etc.) sondern eher std::vector oder std::tr1::array einsetzen (davon abgesehen das ich auch Variablen in der Öffentlichen Schnittstelle einer Klasse vermeide).</p>
<p>Und dynamische Speicherverwaltung meide ich, wenn ich sie nicht wirklich benötige, bzw. überlasse ich sie gerne den Interna der Standardbibliothek und Boost.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676737</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 09 Mar 2009 14:00:03 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrt über Sichtbarkeit von Variablen in Klassen on Mon, 09 Mar 2009 14:17:25 GMT]]></title><description><![CDATA[<p>way schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14941">@asc</a><br />
Ist vielleicht besser anstatt sofort das Array in der Klasse, im Konstruktur mit new zu reservieren. Und im Destruktor dann wunderschön deleten...</p>
</blockquote>
<p>Ja, und zusätzlich noch Kopierkonstruktor und Zuweisungsoperator implementieren.</p>
<p>Bei dem Beispiel hier sollten statische Arrays durchaus berechtigt sein, aber ich würde wie asc sowieso zu Containern greifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676758</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 09 Mar 2009 14:17:25 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrt über Sichtbarkeit von Variablen in Klassen on Mon, 09 Mar 2009 20:44:08 GMT]]></title><description><![CDATA[<p>oh WOW....und danke für die vielen Antworten!!!</p>
<p>Ja ich komme von C..... habe aber mal ganz früher <a href="http://VS.NET" rel="nofollow">VS.NET</a> benutz daher kenne ich Klassen und Objekte. Daher ja meine Grundidee, eine Objekt zu erschaffen das wie ein Adressbuch leicht aufzurufende Daten für einen MySQL Server enthält.</p>
<p>Es sind meine wirklich aller ersten Gehversuche in C++ daher noch mal danke für die vielen Tipps, ich habe zwar drei dicke Bücher aber die sind gelindegsagt....ziemlich komplex und nicht immer hilfreich......</p>
<p>Werde versuchen mich weiter in das &quot;unbekannte Land&quot; vor zu tasten und weiß jetzt ja wo ich immer die beste Hilfe bekomme. DANKE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676988</guid><dc:creator><![CDATA[magier-phil]]></dc:creator><pubDate>Mon, 09 Mar 2009 20:44:08 GMT</pubDate></item></channel></rss>