Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

21

29.01.2007, 20:02

Zitat von »"Das Gurke"«

:oops: Stimmt!

Aber auch die "Basisversion" dieser Klasse sollte schon grundlegende Funktionilität bieten, rein virtuell wäre das ja tierisch nervig. Wie nennt man das denn dann? Basisklasse?


Wenn du dich mit "Wie nennt man das denn" auf rein virtuelle Klassen - also klassen mir nur rein virtuellen Methoden beziehst, nennt man das interface

Beispiel: (Achtung kein CPP)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Interface für allle Teile

class IPart
{
public:
    virtual String PrintChemicalQualities() = 0;   
}

class Motor : public IPart
{
public:
   // MUSS  PrintChemicalQualities implementieren

   String PrintChemicalQualities()  { return String("besteht aus: Alu, Stahl daher sehr haltbar und hitzebestaendig"); }
}

class Tuer : public IPart
{
public:
   // MUSS  PrintChemicalQualities implementieren

   String PrintChemicalQualities()  { return String("leicht deformierbar"); }
}

class Factory
{
private:
   std::list partlist;
public:
    // Herstellen eines Stückes

    virtual IPart Create(unsigned type, ...);

    // Zerstören

    void Destroy(IPart*);

    void PrintChemicalQualities()
    {
       // Druckt die Chemischen Eigenschaften aller Teile aus, 

       // Die Aufgabe wird an die einzelnen Teile weitergegeben....

       // da diese alle PrintChemicalQualities implementiert haben


       for all n in partlist
       {
           partlist[n].PrintChemicalQualities();
       }
    }
}

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

22

30.01.2007, 09:12

also .. um ehrlich zu sein .. frage ich mich mittlerweile ob ich sowas wie verkettete listen überhaupt brauche.

das ganze ist ja irgendwie total umständlich..

das inventar hat ja sowas wie freie plätze.. und wenn ich jetzt ein item auf den platz nr. 5 legen will, und das dann in eine verkettete liste gebe.. und dann ein item auf platz nr. 2 lege .. usw.. dann wird das mit der zeit ziemlich chaotisch.. das heißt ich müsste die liste jedes mal sortieren, denn wenn ich dann mal das inventar auslesen will, dann brauch ich ja ewig wenn das nicht sortiert ist..

am einfachsten wäre da meiner meinung ein array.. was sagt ihr?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

23

30.01.2007, 09:14

Kann man auch machen, yo!
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

24

30.01.2007, 09:22

ja was würde schneller gehn..? eine verkettete liste.. die ich immer wieder sortieren muss... das blöde ist nur, wo speichere ich dann die informationen welcher platz leer ist..

ein array wäre da doch besser oder?

C-/C++-Quelltext

1
2
3
    ( ) ( ) ( ) ( ) ( ) 
    ( ) (x) ( ) ( ) ( )
    ( ) ( ) ( ) (x) ( )


'x' steht für belegt.. um jetzt zb. das inventar anzeigen zu lassen bräuchte ich nur eine schleife durchlaufen lassen, und das würde ganz einfach gehn

aber bei einer verketteten liste (die ich imer sortieren müsste) könnte ich nur auslesen wo was gespeichert ist.. das ist meiner meinung nach fehler anfälliger..

es ist nur so.. die lösung mit dem array ist so trivial ^^
ich will was besseres .. und auch was schnelleres.. aber mir fällt keine lösung ein ^^
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

25

30.01.2007, 09:27

Was gefällt dir am Array nicht? Willst du mehr dynamik? Dann verwende halt std::vector oder boost::multi_map.
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

26

30.01.2007, 09:37

jap.. dynamik kling gut! ich hab v. std::vector bzw. boost::multi_map keine ahnung.. aber ich sehs mir mal an
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

27

30.01.2007, 10:04

Dann würde ich dir empfehlen dich erstmal mit der STL zu befassen! Für ein Inventarsystem sind Multimaps und Vektoren imho recht essentiell ;) Aber keine Panik, ist beides sehr einfach zu verstehen.

Wenn du einigermaßen fit in C++ bist sollten www.CppReference.com für den Anfang reichen. Was du dir aber auf jeden Fall ansehen solltest sind Iteratoren! (Ich sag das weil ichs beim ersten mal ähm ... übersehen hab *g* Anfängerfehler eben)

Also:
1) std::vector und std::multimap ansehen
2) Freuen wie toll man damit ein Inventar erstellen kann ;)
3) Weitermachen mit dem Inventar

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

28

30.01.2007, 11:06

werde ich machen :)

^^

jetz hab ich ne frage.. wo ich jetz warscheinlich etwas dumm da stehe.. aber warum geht das nicht:

C-/C++-Quelltext

1
2
3
4
5
CClass::CClass (const unsigned long SIZE)
{
                // ...

        OBJECT *pStore[SIZE];
}
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

29

30.01.2007, 11:12

Zitat von »"$nooc"«

werde ich machen :)

^^

jetz hab ich ne frage.. wo ich jetz warscheinlich etwas dumm da stehe.. aber warum geht das nicht:

C-/C++-Quelltext

1
2
3
4
5
CClass::CClass (const unsigned long SIZE)
{
                // ...

        OBJECT *pStore[SIZE];
}


Was sagt der Compiler denn?
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

30

30.01.2007, 11:14

Zitat


Fehler 1 error C2057: Konstanter Ausdruck erwartet

Fehler 2 error C2466: Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.

Fehler 3 error C2133: 'pStore': Unbekannte Größe


ich check nicht wo das problem liegt O_o
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Werbeanzeige