Types in C++

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

MisterIKS

Betreff: Types in C++

BeitragDi, Mai 19, 2009 6:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Morgen,

ich programmiere seit einigen Tagen mit C++, und wollte nun mit meinem ersten Spiel anfangen. Für das, was ich vorhabe, habe ich in BB immer Types verwendet. Jetzt habe ich mich schon über Klassen informiert, aber irgendwie ist das nicht das gleiche, wie ein Type, denn man muss ja jedes Element eindeutig benennen.

Gibt es in C++ etwas äquivalentes zu den BB-Types, sodass ich Elemente hinzufügen, mit einer Schleife alle nacheinader abfragen, und bei bedarf wieder löschen kann?
http://www.mphsoftware.de.vu

ComNik

BeitragDi, Mai 19, 2009 7:33
Antworten mit Zitat
Benutzer-Profile anzeigen
nutzt du das dark gdk?
Es gibt natürlich ein äquivalent!!!
Nennt sich klassen! Sind mit das wichtigste!

Edit: oh sche*** du willst ja klassen nutzen...
Dann versteh ich das prob nich...
WIP: Vorx.Engine

DAK

BeitragDi, Mai 19, 2009 9:21
Antworten mit Zitat
Benutzer-Profile anzeigen
structs + lists aus der stl = types in bb
klassen + lists aus der stl = types in bmax.

(siehe hier: http://www.yolinux.com/TUTORIA....html#LIST)

eine list is quasi ein dynamisch dimensioniertes array. damit kannst du mehrere objekte (egal ob klasse, struct oder primitive) quasi in eine variable stopfen und die ähnlich dem for each in bb alle nach einander abarbeiten.

Beispiel:
Code: [AUSKLAPPEN]
#include <iostream>
#include <list>

using namespace std;

class cTest
{
   private:
      int a;
      int b;
   public:
      cTest(int pa, int pb) {a=pa; b=pb;}
      ~cTest(){};
      void printall() {cout<<a<<" "<<b<<"\n";};
};

int main()
{
    list<cTest> Liste;
    cTest Objekt(1,2);
    Liste.push_back(Objekt);
    Objekt = cTest(5,9);
    Liste.push_back(Objekt);
    Objekt = cTest(10,24);
    Liste.push_back(Objekt);
    Objekt = cTest(1,5);
    Liste.push_back(Objekt);
    Objekt = cTest(5,2);
    Liste.push_back(Objekt);
   
    list<cTest>::iterator i;
   
    for (i=Liste.begin(); i!=Liste.end(); i++)
    {
        i->printall();
    }
    system("PAUSE");
    return 0;
}
Gewinner der 6. und der 68. BlitzCodeCompo

MisterIKS

BeitragMi, Mai 20, 2009 6:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verwende nicht die DarkGDK, ich benutze HGE.

Genau das meinte ich, ein dynamisch dimensioniertes Array. Mir ist nur das Wort nicht eingefallen. Ich hab das mal versucht in mein bisheriges Spiel einzubaune, und zwar habe ich die definition der Liste global, also außerhalb einer Funktion gemacht und daraufhin 43 Errors bekommen. Liegt das daran, dass ich sie global definiert habe, wenn ja, wie geht das sonst.
http://www.mphsoftware.de.vu

DAK

BeitragMi, Mai 20, 2009 8:05
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm... ich hab das ganze in einem meiner projekte so gelöst:

includes

klassendeffinition
liste

int main()

wichtig is, dass du die liste nach der klasse deffinierst, da sonst der compiler eine liste von etwas noch nicht bekanntem erstellen will, was natürlich nicht geht.

falls das nicht hilft: welche errors kriegst du und könntest du bissal code zeigen?
Gewinner der 6. und der 68. BlitzCodeCompo

MisterIKS

BeitragDo, Mai 21, 2009 6:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt funktionierts, der Code war schon richtig. Ich hab das wohl gestern vor der Schule zu flüchtig gemacht.

Ich hab das jetzt mit einem "struct" gelöst, weil ich sowieso keine Methoden anlegen will. Das kann ich ja auch später noch ändern.

Danke für die Hilfe!
http://www.mphsoftware.de.vu

BtbN

BeitragDo, Mai 21, 2009 11:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein struct und eine class sind in C++ identisch. Nur eine class beginnt private, und ein struct public. Sonst keine unterschiede vorhanden.

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group