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

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 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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...