То, что вы ищете, это «приведение типов». приведение типов (в квадратных скобках известный тип, который вам нужен) сообщает компилятору, что вы знаете, что делаете, и не против. Старый способ, унаследованный от C, выглядит следующим образом.
float var_a = 9.99;
int var_b = (int)var_a;
Если бы вы только попытались написать
int var_b = var_a;
Вы бы получили предупреждение о том, что вы не можете неявно (автоматически) преобразовать float
в int
, поскольку вы теряете десятичную дробь.
Это называется старым способом, поскольку C++ предлагает превосходную альтернативу, «статическое приведение»; это обеспечивает гораздо более безопасный способ преобразования одного типа в другой. Эквивалентным методом будет (и способ, которым вы должны это сделать)
float var_x = 9.99;
int var_y = static_cast<int>(var_x);
Этот метод может показаться немного более длинным, но он обеспечивает гораздо лучшую обработку таких ситуаций, как случайный запрос «статического приведения» к типу, который не может быть преобразован. Для получения дополнительной информации о том, почему вы должны использовать статическое приведение, см. этот вопрос.
person
Community
schedule
30.03.2010