Неправильное преобразование типов c++ (через стек)
Пушу в стек чар, содержащий число. После чего, создаю инт переменную, в которую попаю это самое число. В итоге оно сильно каверкается. Ниже приведу код самого попа и пуша. (здесь на выходе получаю 53)
StackList<char> stack;
char number = '5';
stack.push(number);
int checking = stack.pop();
cout << checking << endl;
template <typename T>
void StackList <T> :: push (T x) {
if (isEmpty())
{
head = new Node<T>(x);
size++;
} else
{
Node<T> *current = new Node<T> (x);
current -> next = head;
head = current;
size++;
}
}
template <typename T>
T StackList<T> :: pop () {
if (!head)
{
return -1;
}
else
{
Node <T> *temp = head;
head = temp -> next;
T x = temp -> data;
delete temp;
size--;
return x;
}
}
Ответы (1 шт):
Автор решения: Герман Борисов
→ Ссылка
char number = '5';
Данная команда помещает в переменную не число 5, а код, который соответствует символу «5». В данном случае ASCII-код символа «5» - 53.
Так что у вас ничего не коверкается, а работает именно так, как и задумано авторами языка.