AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [C++] Anfängerproblem mit Klassen (Zeigern?)
Thema durchsuchen
Ansicht
Themen-Optionen

[C++] Anfängerproblem mit Klassen (Zeigern?)

Ein Thema von Rastaman · begonnen am 27. Feb 2006 · letzter Beitrag vom 2. Mär 2006
Antwort Antwort
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#1

[C++] Anfängerproblem mit Klassen (Zeigern?)

  Alt 27. Feb 2006, 18:35
Hallo. Fang grad mit C++ an (mit BDS 2006 Trial) und hät da mal ne Frage:

Folgender Code:

Code:
class Klasse
{
    public:
        char* Caption;
};

Klasse *Klasse1;

int main(void)
{
    Klasse1->Caption = "blub";
    return 0;
}
Fragen:
1. Beim Ausführen kommt der Fehler "Zugriffsverletzung"
2. Wenn ich den Zeiger lokel in main pflanze, dann funktioniert es.
3. Kann das daran liegen dass ich das mit den Zeigern noch nicht wirklich verstanden habe?
Zeigt *Klasse1 jetzt einfach auf eine neue Instanz von Klasse?
Ich habs einfach mal kurz so gemacht wie in der VCL (TForm1 *Form1)
Sorry aber die Zeigertutorials sind alle n bischn schwer verständlich und n Buch wollt ich mir nicht extra kaufen.
4. Ist die Codeformatierung der Klasse richtig? Bezweifele ich nämlich ...

Danke schonmal!

//Edit: Titel geändert.
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: [C++] Anfängerproblem mit Klassen (Zeigern?)

  Alt 27. Feb 2006, 18:41
Zitat:
Fragen:
1. Beim Ausführen kommt der Fehler "Zugriffsverletzung"
2. Wenn ich den Zeiger lokel in main pflanze, dann funktioniert es.
3. Kann das daran liegen dass ich das mit den Zeigern noch nicht wirklich verstanden habe?
Zeigt *Klasse1 jetzt einfach auf eine neue Instanz von Klasse?
Ich habs einfach mal kurz so gemacht wie in der VCL (TForm1 *Form1)
Sorry aber die Zeigertutorials sind alle n bischn schwer verständlich und n Buch wollt ich mir nicht extra kaufen.
4. Ist die Codeformatierung der Klasse richtig? Bezweifele ich nämlich ...
1. Klasse muss auf "erzeugt" werden :-> MeineInstanz = new KlassenTyp;
2. Sollte eigentlich nicht, es sei denn, du hast es nicht als Pointer To Class deklariert.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#3

Re: [C++] Anfängerproblem mit Klassen (Zeigern?)

  Alt 27. Feb 2006, 18:52
Zitat von sniper_w:
1. Klasse muss auf "erzeugt" werden :-> MeineInstanz = new KlassenTyp;
Danke!
Also so?

Code:
class Klasse
{
    public:
        char* Caption;
};

Klasse *Klasse1;

int main(void)
{
   Klasse1 = new Klasse;
   Klasse1->Caption = "blub";
   delete Klasse1;
   return 0;
}
Das funktioniert.
Aber wieso muss ich die Instanz nicht erzeugen wenn ich *Klasse1 lokal deklariere?

Und was ist der Unterschied zwischen

Code:
Klasse *Klasse1;
//und
Klasse* Klasse1; //?
Glaube neuer Thread lohnt sich dafür nicht.
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: [C++] Anfängerproblem mit Klassen (Zeigern?)

  Alt 27. Feb 2006, 19:08
Zitat von Rastaman:
Aber wieso muss ich die Instanz nicht erzeugen wenn ich *Klasse1 lokal deklariere?
Das musst du schon, du hattest wohl einfach nur Glück (Speicherzugriffsfehler sind meist nichtdeterministisch).

Zitat von Rastaman:
Und was ist der Unterschied zwischen

Code:
Klasse *Klasse1;
//und
Klasse* Klasse1; //?
Einige schreibens lieber so, andere lieber so. Für den Compiler macht das aber keinen Unterschied.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#5

Re: [C++] Anfängerproblem mit Klassen (Zeigern?)

  Alt 2. Mär 2006, 15:22
Cool danke klappt, dadurch wird gleich alles viel logischer wenn man weiß, dass es egal ist auf welcher Seite der Stern steht
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz