Виходячи з фона в основному пітона, я дещо боровся з роботою з типами в 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" члена?