PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : char*-array als strukturname



ContainerDriver
12-06-2003, 16:03
Hallo,
folgende Problematik:
ich habe eine Funktion, die ein char*-array zurückliefert, z.B. "testing_words". Dieses Array soll nun als Zugriff für eine Struktur dienen (eine Instanz dieser wurde vorher schon angelegt), hier also auf die Struktur testing_words.

//funktion foo
...
return "testing_words";
...

//main
menu testing_words;

cout << $foo().items << endl;
//...

So sieht das in etwa aus.

Wie bekomme ich das hin?

MFG Florian

arthur
12-06-2003, 17:30
Original geschrieben von florian hanisch
Hallo,
folgende Problematik:
ich habe eine Funktion, die ein char*-array zurückliefert, z.B. "testing_words". Dieses Array soll nun als Zugriff für eine Struktur dienen (eine Instanz dieser wurde vorher schon angelegt), hier also auf die Struktur testing_words.

//funktion foo
...
return "testing_words";
...

//main
menu testing_words;

cout << $foo().items << endl;
//...

So sieht das in etwa aus.

Wie bekomme ich das hin?

MFG Florian

c++ ist kein interpreter, deswegen kannst du während der laufzeit
nicht auf strukturen u.ä. über die namen zugreifen,
sondern nur über ihre adresse oder referenz.
du müsstest also diese information ( name <=> objekt) selber verwalten.
zb. in einem container, map wäre hier nicht schlecht.

gruss
Arthur

anda_skoa
17-06-2003, 16:10
Original geschrieben von arthur
du müsstest also diese information ( name <=> objekt) selber verwalten.
zb. in einem container, map wäre hier nicht schlecht.


Ich würde auch zu std::map raten
Als Key Typ aber besser std::string statt char*, weil map AFAIK überladene Operatoren des Key Typs benutzt.

Ciao,
_

ContainerDriver
25-06-2003, 11:22
Hä? Was ist ein Container? Woher bekomme ich Informationen wie das funktioniert?

MFG

Florian

anda_skoa
25-06-2003, 11:34
Original geschrieben von florian hanisch
Hä? Was ist ein Container? Woher bekomme ich Informationen wie das funktioniert?

Container sind Datenstrukturen, die andere Daten enthalten.

In der C++ Standardbibliothek, genauer in der STL, sind solche Container als Templates implementiert, können also für jeden beliebigen Datentype verwendet werden.

Jedes halbwegs brauchbare C++ Buch sollte zumindest vector und/oder list behandlen.

Eine kleine Übersicht findest du hier:
http://www.cppreference.com/

In deinem Fall ist wahrscheinlich std::map eine gute Wahl, mit std::string als Key und dem Pointer auf deine Datenstruktur oder die Struktur selbst als Value.

Wenn du noch nie mit STL Containern gearbeitet hast, probierst du aber zuerst besser einen einfacheren Container, std:vector zum Beispiel.

Ciao,
_

ContainerDriver
26-06-2003, 10:47
Ach, habs in meinem C++ Buch gefunden (und zwar da, wo ich aufgehört habe zu lesen...).
Ich realisiere das jetzt anders (ich wollte das für Menüs in meinem Prog benutzen). und zwar mit einer Baumstruktur.

MFG

Florian

anda_skoa
26-06-2003, 10:59
Original geschrieben von florian hanisch
Ach, habs in meinem C++ Buch gefunden (und zwar da, wo ich aufgehört habe zu lesen...).


:)
Da wirds erst richtig interessant!
Auf jeden Fall weiterlesen.

Ciao,
_