Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Dynamische Aufzählung?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
12.02.2007, 13:26 Uhr
~Gast
Gast


Ist es möglich in C++ einer Aufzählung (enum) zur Laufzeit noch Elemente hinzuzufügen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.02.2007, 14:11 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Was sollte das für einen Sinn haben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.02.2007, 14:32 Uhr
~Gast
Gast


Erweiterbarkeit, z.B.?
Wenn man jetzt ,zum Bleistift, eine Software programmiert, die die Schuhe in einem Schuhgeschäft verwaltet, und man jetzt eine Aufzählung mit allen Schuhtypen macht, wäre es doch viel praktischer, wenn man die Schuhtypen in einer .inf oder .xml Datei ablegen könnte und diese dann zur Laufzeit im Programm zu der Aufzählung hinzugefügt werden könnten. Dann müsste man nicht immer neu kompilieren, wenn der Markt einen neuen Schuhtyp hergibt.
Also, nach dem jetzt alle Klarheiten beseitigt sind, weiß jetzt jemand, wie man eine erweiterbare Aufzählung umsetzen könnte?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.02.2007, 14:35 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Ja aber was hat das mit einem Enum zu tun?

Was du willst wäre eine verkette Liste, ein dynamisches Array, einer vector usw.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.02.2007, 14:42 Uhr
~Gast
Gast


Ja, aber wenn man jetzt, um bei den Schuhen zu bleiben, eine Struktur für 'nen Schuh anlegt, dann würde man da doch so Variablen wie Länge, Größe und halt Typ rein machen. Wie sollte man das denn mit 'ner verketteten Liste oder einem Vector machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.02.2007, 14:47 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Du erstellst dir ne eigene Klasse, die deine Informationen enthällt. Dann erstellst du ein Vector der Klasse und pushst deine Objekte da rein
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.02.2007, 16:48 Uhr
~Gast
Gast


Könntest du mir das mit einem kleinen Beispiel demonstrieren?

Also, nochmal mit den Schuhen. Ich würd das so machen, nur ist das dann halt nicht dynamisch:


C++:
enum ESchuhtyp
{
    E_HALBSCHUH,
    E_SANDALE,
    E_GUMMISTIEFEL
};

struct Schuh
{
    int Größe;
    ESchuhtyp Typ;
};

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.02.2007, 16:58 Uhr
derphilipder



Enumerationstypen dienen aber doch in erster Linie der besseren Programmierbarkeit, es macht gar keinen Sinn, daran zur Laufzeit was zu ändern.
Wenn Du Ein Schuhsortiment erweitern willst, solltest Du sowas wie Bezeichnungen oder Artikelnummern vergeben.
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.02.2007, 17:02 Uhr
derphilipder




C++:
class Schuh
{
    int artikelnummer;
    std::string bezeichnung;
    int Größe;
    
};

std::vector<Schuh> meine_schuhe;

Schuh ein_schuh;
meine_schuhe.push_back(ein_schuh);


--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.02.2007, 17:52 Uhr
0xdeadbeef
Gott
(Operator)


Eine enum kann zur Laufzeit natürlich nicht erweitert werden. Das macht ja auch gar keinen Sinn, weil die Namen in der enum eh zur Compilezeit vom Compiler durch Zahlen ersetzt werden.

In vergleichbarer Weise könntest du fragen, ob man zur Laufzeit noch eben schnell nen Header einfügen kann.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: