# [c++] variablennamen mit werten aus variablen



## Piesbruhder (12. März 2003)

Hallo!

Ich weiß, der Titel hört sich komisch an aber ich wusste mich nicht besser auszudrücken.Ich möchte gerne Folgendes machen:

eine Variable heißt name1 (ein integer, falls das interessiert). Ich will jetzt, dass eine weitere name2 heißt und wieder name3 usw.
Wie kann ich das mit einer Schleife oder sonstwie bewerkstelligen.

Dann nochwas:
Im gleichen Projekt habe ich auchnoch eine Protokollführung drin. Das
sieht im moment so aus:

```
ofstream fout;
fout.open("protokoll-name1.txt");
fout << "BlaBlaBla...";
fout.close();
```
Wie ihr vielleicht erkannt habt, soll für jede name-Variable auch
ein Protokoll erstellt werden. Wie kann ich immer den Dateinamen verändern?

Ich würde mich sehr über Hilfe freuen und bedanke mich schonmal im Voraus.


----------



## Christian Fein (12. März 2003)

nimm nicht name1, name2, name3 
nimm dafür Arrays.
Grundsätzlich geht das von dir gesagte nur in manchen Sprachen wie PHP.

for($i =0;$i<10;$i++)
 $varname = "name".$i;
 $$varname = "wert";
}

aber wenn ich jemand erwische der sowas in PHP macht den klopf ich auf die Finger. 

Mann brauch keine Dynamischen Variablennamen und sollte diese grundsätzlich nicht verwenden, da dies extrem schlecht zum Debuggen ist.

In C++ gibt es auch in der STL den Vector um ein dynamisches Array zu nutzen, oder aber eine HashMap / HashTable 
das ist dazu dar Schlüssel - Wert speicherungen vorzunehmen. 

da kannst du dann anhand 
map["name1"] = wert;

speichern.


----------



## Daniel Toplak (12. März 2003)

Dynamische Variablen gehen in C/C++ normalerweise eh nicht, da dies eine Compiler-Sprache ist, das geht nur bei Interpreter-, bzw. Skriptsprachen, die zur Laufzeit übersetzt werden.
Und wie Holyfly schon gesagt hat, gehört das nicht zu gutem Stil.
Ich würde mich an deiner Stelle mal etwas mit Objekt-Orientierter Programmierung auseinandersetzen.
Denn was du machen willst, ist mehrere "Objekte" mit gleichen Eigenschaften zu verwenden. Und das trifft genau auf ein Teil der definierung von Klassen.
Du kannst aber auch mal mit einfachen structs arbeiten, wenn du noch nie was mit Klassen gemacht hast.

Gruss Homer


----------

