JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=59c6ac1b3132af7a837689e4e9df26e0Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

"Klasseninstanzen Array"

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
BenHei
Mini JLI'ler



Anmeldedatum: 27.10.2005
Beiträge: 6

Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 17:24    Titel: "Klasseninstanzen Array" Antworten mit Zitat

Erstma hallo an alle JLI'er Wink
Bin neu hier, und man ahnt es kaum, ein Problem veranlasst mich diesen Thread zu eröffnen Very Happy

Ich habe die Sprite Klasse aus dem Buch.
Nun möchte hingehen und dynamisch davon n Instanzen erstellen:
Sprite *Bild = new Sprite[n];
das klappt soweit ja auch.

Aber wenn ich später Bild[x].Create(...) aufrufen kommt es zu einem Zugriffsfehler.
(Den -> Operator nimmt er nicht an, obwohl der ja eigentlich recht wär).

Denke ich da grad vollkommen an C++ vorbei oder gibt es einen Weg der mir das ganze ermöglicht?

Freue mich auf jede Hilfreiche Antwort Smile
Gruß
Benny
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 17:53    Titel: Antworten mit Zitat

sollte eigentlich funktionieren. Das einzige was ihc mir vorstellen köntne, ist das x vielelicht zu groß ist, oder n nicht gesetzt wurde oder du [x].Create aufrufst bevor du new aufrufst. Vielleicht soltlest du mal den code im zusammenhang posten.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 18:05    Titel: Antworten mit Zitat

Hi!

Der "." Operator ist hier vollkommen richtig. Falsch wäre der "->" Operator. Also, einen Fehler sehe ich allerdings auch nicht. Höchstens o.g. Möglichkeiten oder aber das der Fehler in Create auftritt.
Diese Möglichkeiten kannst du aber per Debugging ganz leicht ausschließen.

grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BenHei
Mini JLI'ler



Anmeldedatum: 27.10.2005
Beiträge: 6

Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 18:12    Titel: Antworten mit Zitat

Ich versuchs grad nochmal.
Wenns dann net klappt poste ich den Code.
Wie ist das eigentlich wenn die Klasse nen Kostruktor mit Argumenten hat?
Wie übergeb ich die dann?

Sprite *Bild = new Sprite[20](lpDevice, lpTextureFileName...)

das geht ja net Very Happy

EDIT:
Man glaubt es kaum, es geht Very Happy lol
naja grad umsonst der ganze stress hier Wink

Danke euch beiden Cool


Zuletzt bearbeitet von BenHei am 08.02.2006, 18:17, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 18:16    Titel: Antworten mit Zitat

es ist unmöglich ein Array einer Klasse zu erstellen, dessen Konstruktor Parameter benötigt. Du kannst ein Array mit Zeigern auf die Objekte machen (gar nicht so dumm, Zeiger zu speichern, auch bei stl mach ich das oft) und dann in einer Schleife in jedes Feld ein entsprechendes Objekt initialisieren.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 18:44    Titel: Antworten mit Zitat

Jonathan_Klein hat Folgendes geschrieben:
es ist unmöglich ein Array einer Klasse zu erstellen, dessen Konstruktor Parameter benötigt.

Das sehe ich anders
CPP:
Klasse instanzen[3] = {Klasse(23), Klasse(23, "überladen"), Klasse(3,2,5)};

so in etwa sollte das Funktionieren ^^
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 18:52    Titel: Antworten mit Zitat

ich bin mir zwar net sicher ob das geht, aber auf jedne Fall geht es nicht wenn du new benutzt. Besonders net wenn die Anzahl der Elemente variabel ist...
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 19:06    Titel: Antworten mit Zitat

ne andere Möglichkeit wäre, die allgemeinen Initialisierungen(wenn vorhanden) im Konstruktor zu machen und seperat eine Funktion Init() zu erstellen. Dann könntest du die in ner schleife initialisieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
BenHei
Mini JLI'ler



Anmeldedatum: 27.10.2005
Beiträge: 6

Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 19:39    Titel: Antworten mit Zitat

Genauso mach ichs jetzt auch Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 08.02.2006, 19:57    Titel: Antworten mit Zitat

Hi!

Dragon hat Folgendes geschrieben:
Jonathan_Klein hat Folgendes geschrieben:
es ist unmöglich ein Array einer Klasse zu erstellen, dessen Konstruktor Parameter benötigt.

Das sehe ich anders
CPP:
Klasse instanzen[3] = {Klasse(23), Klasse(23, "überladen"), Klasse(3,2,5)};

so in etwa sollte das Funktionieren ^^


Hier ging es um dynamischen Speicher. Also Objekte auf dem Heap. Und da gibt es keine Möglichkeit überladene Construktoren zu verwenden.

grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum