double typecast vs double function

49
4

Я видел эти два разных способа бросить int в double в C:

double double_var = (double) int_var;
double double_var = double(int_var);

Какая разница между этими двумя методами? Когда я должен использовать один над другим?

спросил(а) 2016-02-02T04:37:00+03:00 4 года назад
1
Решение
59

Как заявил Джонатан Леффлер, первая из C и вторая из C++:

Первый - это литье в стиле C; второй - это создание double путем передачи конструктору значения int.

Таким образом, второе не является отличным, но созданием нового экземпляра (так что это больше C++, чем C).

Если вы выполняете только C то использование конструкторов не имеет значения (в C нет объектно-ориентированного программирования, это функция C++).

Если вы выполняете некоторые C++ вам следует избегать приведения в стиле C (как указано в @BitTickler), поскольку проблемы могут возникать в зависимости от типа используемых вами значений. C++ предоставляет несколько типов C++ для нескольких случаев.

См. Этот ответ для получения дополнительной информации.

ответил(а) 2016-02-02T04:43:00+03:00 4 года назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема