Permalänk
Medlem

C++: Deklarering av list-objekt

Hur kan jag deklarera ett list-objekt av en datatyp som får väljas av användaren?
Om användaren väljer int så ska det bildas en list av datatyp int och om denne väljer double så ska en list ha datatypen double.

Jag kan ju inte deklarera en list utan att ange datatyp och om jag gör något i stil med,
if (datatyp == "int")
{
list<int> listan;
}
så existerar den ju bara inom sitt scope och kan inte användas utanför.

Så hur kan jag fixa detta på ett bra sätt?

Jag vill inte deklarera två olika list-objekt för de två datatyperna, jag vill ha endast en och den ska ha ett visst namn (listan).
Anta att användaren knappat in "int" eller "double" och att den strängen sedan sparats i en variabel med namnet datatyp.

Tack på förhand.

Permalänk
Medlem

Enklast är nog att skapa en unions-typ med de olika typerna som du sen sparar i listan. Sen är det bara att hålla reda på typen när man manipulerar listan.

Permalänk
Medlem

Manipuleringarna kommer att ske med template funktioner. Jag vill inte använda unioner.