<?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[zeiger in klassen]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie benutzt man Zeiger in Klassen ? Wo deklarier ich einen Zeiger ?<br />
Unter public oder private ? Wenn er unter private deklariert wird<br />
wie kann man dann drauf zu greifen ? Können dann ale funktionen unte rpublic auf den Zeiger zugreifen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/35500/zeiger-in-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 23:11:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/35500.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Mar 2003 18:11:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zeiger in klassen on Mon, 17 Mar 2003 18:11:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie benutzt man Zeiger in Klassen ? Wo deklarier ich einen Zeiger ?<br />
Unter public oder private ? Wenn er unter private deklariert wird<br />
wie kann man dann drauf zu greifen ? Können dann ale funktionen unte rpublic auf den Zeiger zugreifen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259122</guid><dc:creator><![CDATA[c-mos]]></dc:creator><pubDate>Mon, 17 Mar 2003 18:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Mon, 17 Mar 2003 18:24:00 GMT]]></title><description><![CDATA[<p>Hi erst mal!</p>
<p>Du solltest vielleicht sagen ist das ein Zeiger auf eine andere Klasse ?<br />
Oder der eigenen (--&gt; this &lt;-- verwenden)</p>
<p>Wie soll der Zeiger genutzt werden ? Nur von Memberfunktionen der Klasse oder soll auch von ausserhalb zugegriffen werden können??</p>
<p>Da gibts noch mehr fragen deshalb was willst du mit diesem Zeiger machen??</p>
<p>C U Evilissimo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259123</guid><dc:creator><![CDATA[evil2002]]></dc:creator><pubDate>Mon, 17 Mar 2003 18:24:00 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Mon, 17 Mar 2003 18:59:00 GMT]]></title><description><![CDATA[<p>Hmm...soweit habe ich noch gar nicht gedacht.<br />
Wenn ich z.b.</p>
<pre><code class="language-cpp">private:
    int feld[10];
</code></pre>
<p>So, wie lege ich jetzt einen Zeiger auf des Feld der von den Memberfunktionen (Funktionen unter public ?) ansprechbar ist?<br />
Oder andere Frage. Wenn ich dateien öffne geht das ja auch über z.b.<br />
FILE *datei.<br />
Wie kann ich das in einer Klasse realisieren ? Das man dann halt praktisch ne<br />
klasse hat um Dateien zu lesen oder in datein zu schreiben ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259124</guid><dc:creator><![CDATA[c-mos]]></dc:creator><pubDate>Mon, 17 Mar 2003 18:59:00 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Mon, 17 Mar 2003 19:19:00 GMT]]></title><description><![CDATA[<blockquote>
<p>wie benutzt man Zeiger in Klassen ?</p>
</blockquote>
<p>So wie überall anders auch.</p>
<blockquote>
<p>Wo deklarier ich einen Zeiger ?</p>
</blockquote>
<p>Da wo man alle anderen Daten auch deklariert. Im private-Bereich.</p>
<blockquote>
<p>Wenn er unter private deklariert wird<br />
wie kann man dann drauf zu greifen ?</p>
</blockquote>
<p>Von außen direkt gar nicht. Das ist der Sinn von Kapselung.</p>
<blockquote>
<p>Können dann ale funktionen unte rpublic auf den Zeiger zugreifen ?</p>
</blockquote>
<p>Zugriffsrechte werden nicht durch den Objekttyp beeinflusst. Es gelten also exakt die selben Regeln wie für nicht-Zeigertypen. Methoden einer Klasse haben selbstverständlich Zugriff auf die Instanzvariablen.</p>
<blockquote>
<p>Das man dann halt praktisch ne<br />
klasse hat um Dateien zu lesen oder in datein zu schreiben ?</p>
</blockquote>
<p>Dafür gibt es in der Standardbibliothek bereits feine Klassen. Für den Anfang nennen wir sie mal ifstream und ofstream.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259125</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 17 Mar 2003 19:19:00 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Mon, 17 Mar 2003 20:40:00 GMT]]></title><description><![CDATA[<p>Jo, die fstream sache kenne ich.<br />
Nur habe ich da eine saceh die ich mit FILE gut lösen konnte<br />
mit fstream aber keine Lösung gefunden habe.</p>
<p>Werde das dann mal mit den Zeigern probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259126</guid><dc:creator><![CDATA[c-mos]]></dc:creator><pubDate>Mon, 17 Mar 2003 20:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Sun, 21 Sep 2008 17:30:11 GMT]]></title><description><![CDATA[<p>Vielleicht kann mir Jemand helfen.</p>
<p>Ich möchte mir einen eigenen Dialog schreiben.<br />
MessageBox, ShowMessage und MessageDlg gefallen mir alle nicht.</p>
<p>Doch der Zeiger F funktioniert in der Funktion CreateMyDialog() nicht.</p>
<p>Warum nicht? Kann mir Jemand helfen?</p>
<p>Hier der Quelltext</p>
<p>Unit1.cpp</p>
<pre><code class="language-cpp">#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;Unit1.h&quot;
#include &quot;MyDialog.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
MyDialog *mDialog;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  mDialog-&gt;CreateMyDialog();
}
//---------------------------------------------------------------------------
</code></pre>
<p>MyDialog.h</p>
<pre><code class="language-cpp">class MyDialog : public TForm
{
  private:
  TForm *F;

  public:

  void CreateMyDialog()
  {
    //TForm *F = new TForm(this);  wenn ich so eine neue Form erzeuge geht es
    // doch dann funktioniert F-&gt;Close() weiter unten nicht mehr weil F
    // innerhalb der Funktion deklariert wurde
    F-&gt;Caption = &quot;Mein neuer Dialog&quot;;
    TButton *B = new TButton(this);
    B-&gt;Parent = F;
    B-&gt;SetBounds(50,50,75,25);
    B-&gt;OnClick = MyClick;
    F-&gt;ShowModal();
  }

  void __fastcall MyClick(TObject *Sender)
  {
    ShowMessage(&quot;Das Ereignis MyClick ist eingetreten.&quot;);
    F-&gt;Close();
  }
};
</code></pre>
<p>Wenn ich das so übersetzen lasse, bekomme ich eine Fehlermeldung (Zugriffsverletzung)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1585637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1585637</guid><dc:creator><![CDATA[Andreas81]]></dc:creator><pubDate>Sun, 21 Sep 2008 17:30:11 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Sun, 21 Sep 2008 20:38:59 GMT]]></title><description><![CDATA[<p>Mach es so:</p>
<p>MyDialog.h</p>
<pre><code class="language-cpp">class MyDialog : public TForm
{
  private:
  TForm *F;

  public:

  void CreateMyDialog()
  {
    //TForm *F = new TForm(this);  wenn ich so eine neue Form erzeuge geht es
    // doch dann funktioniert F-&gt;Close() weiter unten nicht mehr weil F
    // innerhalb der Funktion deklariert wurde
    //Du willst ja auch keine neue Variable deklarieren, sondern dem Member der Klasse das neue Objekt zuweisen, also
    F = new TForm(this);
    //...
  }
};
</code></pre>
<p>Erklärung steht im Kommmentar.</p>
<p>Wieso hast du für die Frage eigentlich diesen uralt Thread ausgebuddelt? Hat zwar thematisch was miteinander zu tun, aber trotzdem...</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1585717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1585717</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Sun, 21 Sep 2008 20:38:59 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Mon, 22 Sep 2008 11:42:50 GMT]]></title><description><![CDATA[<p>Die Frage ist, wozu Du überhaupt den TForm-Zeiger benötigst? Wozu brauchst Du überhaupt eine konkrete Instanz von TForm? Meiner Meinung nach brauchst Du eine Instanz von MyDialog...</p>
<p>Es wäre wohl deutlich günstiger, den Dialog als neues Formular im BCB zu erstellen, aus der Liste der automatisch erzeugten Forumlare herausnehmen und diesen bei Bedarf dann selbst zu instanzieren (abschließendes löschen nicht vergessen). Falls der Dialog nicht Modal ist, kann man ihn auch mit einem andern Formular, oder dem TApplication-Objekt als Owner erzeugen, dann brauchst Du Dich ums löschen nicht zu kümmern. Auch könnte auto_ptr einen Blick wert sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1585923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1585923</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 22 Sep 2008 11:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Mon, 22 Sep 2008 17:20:08 GMT]]></title><description><![CDATA[<p>Erstmal ein Danke für die schnelle Antwort.<br />
Ausgebuddelt habe ich den Thread, ja weil´s zum Thema passt.</p>
<p>Doch leider funktioniert das nicht. Ich habe es genau so versucht wie du es beschrieben hast. F = new TForm(this);</p>
<p>Das Programm läst sich übersetzen, wenn ich auf Button1 clicke bekomme ich folgende Meldung: Womit ich leider garnichts anfangen kann<br />
---------------------------<br />
Debugger Exception Notification<br />
---------------------------<br />
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00401BAB in module 'Project1.exe'. Write of address 000002F0'. Process stopped. Use Step or Run to continue.<br />
---------------------------<br />
OK Help<br />
---------------------------</p>
<p>Um Joe_M. zu antworten, ich wußte mir einfach nicht anders zuhelfen.<br />
Aber das Formular im BCB zu erstellen, und aus der Liste der automatisch erzeugten Forumlare zu entfernen ist eine gute Idee. Danke für diese.<br />
Aber ich glaube meine Klasse ist so wie ich es versuche, etwas flexibler.</p>
<p>Wissen würde ich gerne trotzdem, warum es auf diesem Wege<br />
F = new TForm(this);<br />
nicht geht.</p>
<p>Andreas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1586146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1586146</guid><dc:creator><![CDATA[Andreas81]]></dc:creator><pubDate>Mon, 22 Sep 2008 17:20:08 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Tue, 23 Sep 2008 03:07:21 GMT]]></title><description><![CDATA[<p>So es ist jetzt 4:51 in einer Stunde muß ich zur Arbeit.</p>
<p>Aber die Nacht hat sich gelohnt.</p>
<p>Ich kann ja Klassenelemente, auch vor der Definition, der Klasse selbst verwenden.<br />
Also so</p>
<p>MyDialog.h</p>
<pre><code class="language-cpp">#ifndef MYDIALOG_H
#define MYDIALOG_H
TForm *F;
class MyDialog : public TForm
{
  public:

  void CreateMyDialog()
  {
    F = new TForm(this);
    F-&gt;Caption = &quot;Mein neuer Dialog&quot;;
    TButton *B = new TButton(this);
    B-&gt;Parent = F;
    B-&gt;SetBounds(50,50,75,25);
    B-&gt;OnClick = MyClick;
    F-&gt;ShowModal();
  }

  void __fastcall MyClick(TObject *Sender)
  {
    ShowMessage(&quot;Das Ereignis MyClick ist eingetreten.&quot;);
    F-&gt;Close();
  }
};
#endif
</code></pre>
<p>Vielen Dank</p>
<p>Andreas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1586256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1586256</guid><dc:creator><![CDATA[Andreas81]]></dc:creator><pubDate>Tue, 23 Sep 2008 03:07:21 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Tue, 23 Sep 2008 12:18:43 GMT]]></title><description><![CDATA[<p>Ich verstehe es trotzdem nicht. Wieso erstellst Du ein Form F, wenn es doch schon das Form MyDialog gibt? Du erstellst ein unsichtbares Form MyDialog, nur um ein (mehr oder weniger abstraktes) Formular vom Typ TForm zu erstellen? MyDialog lässt Du dann vermutlich automatisch erzeugen, zeigst aber niemals an und verwendest es nur als 'Container' für alle manuell erzeugten TForm-Instanzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1586491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1586491</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 23 Sep 2008 12:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Tue, 23 Sep 2008 18:24:35 GMT]]></title><description><![CDATA[<p>Wie würdest du denn eine Klasse schreiben die folgende Funktionen enthält:</p>
<pre><code class="language-cpp">// Ich denke zu dieser Funktion muß ich nichts weiter schreiben
CreateMessageDialog(String Message,String ResourceDllFileName,String ResourceName,int Buttons);

// Ein PasswortDialog brauche ich immer und immer wieder
CreatePasswordDialog();

/* Click OK, Verbindung wird konfiguriert wenn alle Edits ausgefüllt wurden.
   Click OK, Verbindung wird aus der Reg. galaden wenn alle Edits leer sind
   Click Speichern, speichert die Verbindunsinformationen nach 
   einem erfolgreich abgeschlossenen Verbindungstest wie Username usw. in der Reg. 
   Wobei das Pass... verschlüsselt gespeichert wird. 
   Der Parameter SaveArea gibt an ob der SpeichernTeil in diesem Dialog sichtbar ist */
CreateMySQLConnectionDialog(bool SaveArea);

// Ich weiß das es einen fertigen gibt 
CreateSelectFolderDialog(int Buttons);
</code></pre>
<p>Wie lasse ich mir das Formular MyDialog Modal anzeigen?<br />
Wie bekomme ich Komponenten, oder einen Zeiger auf diese, auf das Formular MyDialog?</p>
<p>Wie ich schon schrieb, wußte ich mir nicht anders zuhelfen.<br />
Hilf mir.</p>
<p>Andreas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1586745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1586745</guid><dc:creator><![CDATA[Andreas81]]></dc:creator><pubDate>Tue, 23 Sep 2008 18:24:35 GMT</pubDate></item><item><title><![CDATA[Reply to zeiger in klassen on Wed, 24 Sep 2008 08:24:28 GMT]]></title><description><![CDATA[<p>Gar nicht. Für alle diese Dinge gibt es Standarddialoge in BCB.</p>
<p>Nachricht ausgeben: ShowMessage() oder Application::MessageBoxA().<br />
Passwort-Dialog: Wofür? Die Datenbankzugriffskomponenten des BCB erzeugen diesen automatisch.<br />
MySQL-Connection Dialog: Dies ist wohl der einzige Dialog, den Du selbst machen musst. Aber auch nur dann, wenn Du zwischen beliebigen Servern / Datenbanken wechseln willst. Mach ihn als normales Formular, dann kannst Du ihn auch wie jedes andere Formular im BCB verwenden, inkl. Zugriff auf, auch selbsterstellte, Variablen. Hierzu ist vielleicht die __property Eigenschaft des BCB noch ganz interessant. Damit kann man sich für einfache Datentypen den Getter und Setter sparen.<br />
Select-Directory Dialog: Dazu würde ich die WinAPI nutzen: SHBrowseForFolder().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1587049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1587049</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 24 Sep 2008 08:24:28 GMT</pubDate></item></channel></rss>