Исходя из опыта работы с Python, я немного боролся с работой с типами в C ++.
Я пытаюсь инициализировать переменную класса через один из нескольких перегруженных конструкторов, которые принимают разные типы в качестве параметров. Я прочитал, что использование auto
ключевого слова может быть использовано для автоматического объявления переменной, однако в моем случае оно не будет инициализировано до тех пор, пока не будет выбран конструктор. Однако компилятор не рад тому, что он не инициализирован 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;
}
};
В Python это может выглядеть так:
class Token():
def __init__(self, value):
self.value = value
def printValue(self):
print("The token value is: %s" % self.value)
Как правильно использовать auto
ключевое слово в этом сценарии? Должен ли я использовать другой подход в целом?
auto
для учеников вообще? Актуальный, но устаревший вопрос: возможно ли иметь переменную-член auto?