Zum Inhalt springen

Dynamische Zuweisung von Variablentypen


Empfohlene Beiträge

Geschrieben

Hallo Leute,

bin relativ neu hier im Forum, deshalb erstmal ein wenig zu mir. Ich Programmiere CATIA V5 CAA C++, was den wenigsten Leuten ein Begriff ist, für ein mittelständisches Unternehmen im Raum NRW (derzeit noch in der Ausbildung). Ich beschäftige mich seit knapp knapp 3 Monaten mit dem Thema C++ und nun seit eineinhalb Monaten ca. mit dem Thema CAA ( Dassault Systemes:Product Lifecycle Management PLM and 3D Simulation Software Solutions ). Bin noch relativ grün hinter den Ohren, da ich aber schon relativ viel Vorwissen im Bereich Programmierung besitze.

Kommen wir nun zu meiner Frage:

Ist es möglich, dynamisch Variablentypen zu initialisieren?

Gehen wir einfach mal davon aus, dass ich eine einfache Eingabe habe:

cout << "Geben Sie eine Zahl ein :";

cin >> Zahl;

Gehen wir davon aus, der Benutzer gibt 2000 ein, möchte ich eine Zuweisung eines Integers vollziehen. Sollte der Benutzer aber z.B. 70000, dann lieber ein Double. Bei 7.5 einen float etc.

Gibt es da eine gute Methode für ? Hab schon relativ viel im Internet gesucht, was das Thema angeht, aber bisher wenig gefunden.

Würde mich über Antworten freuen,

mfg

Geschrieben

Naja, aus meiner Sicht ist das ganze schon sehr sinnvoll. Wenn es nötig ist, kann ich meine Situation zu späterer Stelle nochmal genauer definieren. An dieser Stelle soll erstmal genügen, dass ich eine Eingabe empfangen möchte und diese direkt an die passende Variable übergeben will.

Das ganze mindert Speicherverschwendung, da ich Anwendungen nicht nur für "ultra"-Systeme schreibe, ist es meiner Meinung nach nötig, immer den geringsten Aufwand an Speicher und Variablen zu haben, wie möglich.

Dynamische Speicherzuweisung existiert. Mir hat ein externer Mitarbeiter mal kurz was darüber erzählt, kurz bevor er zurück in die Schweiz gereist ist. Ich hatte keine Zeit ihn nach Codebeispielen zu fragen, war aber sehr fasziniert von der Idee... :beagolisc

MfG

Geschrieben

Natürlich kannst du dir dynmisch Speicher reservieren, das hat aber nichts mit deiner Ursprungsfrage zu tun. C++ ist zum Glück eine typisierte Sprache und wenn du irgendwo etwas einliest dann weißt du was du an der Stelle erwartest.

Wenn du unbedingt mit einer nichttypisierten Sprache arbeiten willst dann nimm Perl oder sowas.

Geschrieben

Vielleicht solltest du nicht jedes Wort meines Textes auf die Goldwage legen und krampfhaft versuchen eine Lösung für ein Problem zu finden, auf das du, wie es scheint, keine Antwort hast.

:rolleyes:

Geschrieben

Doch ich kann bzw. hab dir gesagt das das so nicht möglich ist und wenn du nicht beschreiben willst was du genau machen möchtest dann kann man dir auch keine Alternativen nennen.

Wenn du das nicht akzeptieren willst/kannst oder sonstige Problem hast kann ich dir auch nicht helfen :rolleyes:

Geschrieben

Gehen wir einfach mal davon aus, dass ich eine einfache Eingabe habe:

cout << "Geben Sie eine Zahl ein :";

cin >> Zahl;

Gehen wir davon aus, der Benutzer gibt 2000 ein, möchte ich eine Zuweisung eines Integers vollziehen. Sollte der Benutzer aber z.B. 70000, dann lieber ein Double. Bei 7.5 einen float etc.

/edit:

Void-zeiger hab ich schonmal versucht, aber der hat bei mir immer Fehler ausgespuckt :-(

Geschrieben

Das ist das was oben schon stand:

PS: Du könntest das höchstens als String einlesen und dann je nachdem einer anderen Variable zuweisen (konvertieren)

Die Frage dabei ist warum du das so machen willst, denn du willst ja mit der Eingabe auch irgendwie weiterarbeiten.

Geschrieben

Das mit dem Void-Zeiger war ein Scherz...

Auf welchen Systemen soll das Programm denn laufen, wenn jedes einzelne Bit so wichtig ist?

Außerdem hat man bei 3D-Anwendungen (hab ich jetzt mal so rausgelesen) andere Optimierungsmöglichkeiten, als sich über Datentypen für Zahlen gedanken zu machen.

Nimm einfach immer double, da passt genug rein, Komma kannst du anzeigen usw.

Der Code-Overhead für die Erstellung dynamischer Variablen bzw. die Abprüfung nach dem Typ wiegt die Vorteile von paar Bits/Bytes so und so auf.

Wenns wirklich so wichtig ist, dann schreib es in reinem C oder ASM.

Geschrieben
Ist es möglich, dynamisch Variablentypen zu initialisieren?
Einfache Antwort: Nein. C++ ist statisch typisiert.

Man kann so etwas natürlich nachbilden. Du könntest dir beispielsweise mal boost::any ansehen. Ich weiß allerdings nicht, ob man boost auf deiner Plattform ans Laufen bringen kann. Außerdem vermute ich, dass das deinem Ziel der Minimierung des Speicherverbrauchs eher entgegenläuft. Solche "Komfort"-Features muss man sich immer durch Performance erkaufen, sei es durch Laufzeit- oder durch Speicheroverhead.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...