Ich komme aus node.js und ich frage mich, ob es eine Möglichkeit gibt, dies in C++ zu tun. Was die C++ Äquivalent wäre:Ändern von Variablentypen nach der Initialisierung C++
var string = "hello";
string = return_int(string); //function returns an integer
// at this point the variable string is an integer
So in C++ Ich möchte wie diese Art von etwas zu tun ...
int return_int(std::string string){
//do stuff here
return 7; //return some int
}
int main(){
std::string string{"hello"};
string = return_int(string); //an easy and performant way to make this happen?
}
ich mit JSON bin zu arbeiten und ich brauche ein paar Strings aufzuzählen . Ich weiß, dass ich einfach den Rückgabewert von return_int()
einer anderen Variablen zuweisen könnte, aber ich möchte wissen, ob es möglich ist, den Typ der Variablen aus einem String zu einem Int umzutauschen, aus Gründen des Lernens und der Lesbarkeit.
Nein, das ist nicht möglich (zumindest nicht in _ "eine einfache und performante Art, dies zu erreichen?" _). C++ korrigiert alle Variablentypen zur Kompilierzeit. –
Siehe http://stackoverflow.com/questions/1517582/what-is-the-difference-between-statically-typed-and-dynamically-typed-languages –
Denken Sie daran, dass es für eine Sprache nicht dasselbe ist, statisch zu sein getippt, um stark typisiert zu werden. Zum Beispiel: JavaScript ist dynamisch und schwach, was implizite Typumwandlungen erlaubt (wie x = "3" + 5). Python ist dynamisch und stark, was explizite Typumwandlungen erlaubt (entweder x = "3" + "5" oder x = 3 + 5, aber nicht gemischt). C++ ist statisch, so wie erwähnt, gibt es keinen einfachen Weg, da es nicht das erwartete Verhalten ist (Sie müssen den Typ von x zur Kompilierungszeit explizit deklarieren) –