Ich komme hauptsächlich aus Python und habe Probleme mit der Arbeit mit Typen in C ++.
Ich versuche, eine Klassenvariable über einen von mehreren überladenen Konstruktoren zu initialisieren, die verschiedene Typen als Parameter verwenden. Ich habe gelesen, dass die Verwendung des auto
Schlüsselworts für die automatische Deklaration einer Variablen verwendet werden kann. In meinem Fall wird sie jedoch erst initialisiert, wenn ein Konstruktor ausgewählt wird. Der Compiler ist jedoch nicht glücklich darüber, dass er nicht initialisiert wird value
.
class Token {
public:
auto value;
Token(int ivalue) {
value = ivalue;
}
Token(float fvalue) {
value = fvalue;
}
Token(std::string svalue) {
value = svalue;
}
void printValue() {
std::cout << "The token value is: " << value << std::endl;
}
};
In Python könnte dies so aussehen:
class Token():
def __init__(self, value):
self.value = value
def printValue(self):
print("The token value is: %s" % self.value)
Wie wird das auto
Schlüsselwort in diesem Szenario richtig verwendet ? Sollte ich einen anderen Ansatz wählen?
auto
für Klassenmitglieder verwenden? Relevante, aber veraltete Frage: Ist es möglich, eine "automatische" Mitgliedsvariable zu haben?