Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
iwsyhgia
1 / 1 / 0
Регистрация: 11.01.2014
Сообщений: 51
#1

Приведение типов - C++

11.01.2014, 19:12. Просмотров 375. Ответов 6
Метки нет (Все метки)

В чем различие привидения типа (type)expression, от type(expression)?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 19:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приведение типов (C++):

Приведение типов - C++
Делаю программу, которая кроме всего прочего должна отсортировать массив. Использую для этого qsort. Вот что получилось: ...

Приведение типов? - C++
Подскажите, пожалуйста что происходит. Не понимаю почему такой код работает. .h class Km { private: static const...

Приведение типов - C++
Добрый вечер! Реализовываю явное и не явное приведение типов. Есть два класса, сепаративных, A и B. Реализацию явного преобразования...

Приведение типов - C++
Доброго времени суток. Есть вопрос. Допустим: class Base { ..... } class Derived:public Base{ .... }

Приведение типов - C++
Есть код вызова метода: obj.func(char a, char b) сам метод: void func(char a, char b) { int i = (int)a, int j = (int)b; В...

Приведение типов - C++
Уважаемые программеры, ПОМОГИТЕ!!! Нужно (мне) реализовать шаблонную функцию для приведения типов. Пример: newType_cast<T>(“123”); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6358 / 5922 / 1919
Регистрация: 18.12.2011
Сообщений: 15,218
Завершенные тесты: 1
11.01.2014, 19:39 #2
Насколько я знаю, ни в чем.
Разве, что в приоритете.
(int)a/b приведет a к int
int(a/b) приведет результат деления к int
outoftime
║XLR8║
509 / 431 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
11.01.2014, 19:58 #3
iwsyhgia, (type)expression это приведение типа, а type(expression) - вызов конструктора.

Добавлено через 11 минут
http://alenacpp.blogspot.com/2005/08/c.html

Добавлено через 3 минуты
У меня такое впечатление, что приведение типов в действительности отживает свое из-за появления шаблонов.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
16.01.2014, 16:50 #4
Цитата Сообщение от outoftime Посмотреть сообщение
У меня такое впечатление, что приведение типов в действительности отживает свое из-за появления шаблонов.
Очень спорное заявление, скорее даже неверное. Потому что эти два механизма не имеют ничего общего. Приведение типов - в общем случае механизм стадии выполнения, шаблоны же (в С++) - строго механизм стадии компиляции, на стадии выполнения о том, шаблонным был класс или нет, неизвестно ровно ничего. От излишних приведений типов в некотором роде спасают паттерны проектирования, но полное отсутствие приведений типов в коде (достаточно большом и сложном в плане архитектуры) является, по моему мнению, недостижимым идеалом.
outoftime
║XLR8║
509 / 431 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
17.01.2014, 13:59 #5
silent_1991, я не говорю что не надо знать что такое приведение типа и когда его надо использовать, я имею в виду что при правильном подходе от него можно полностью отказаться.
Цитата Сообщение от silent_1991 Посмотреть сообщение
но полное отсутствие приведений типов в коде (достаточно большом и сложном в плане архитектуры) является, по моему мнению, недостижимым идеалом
Опять таки это не вина шаблонов это в большей степени "мелкие" ошибки проектирования.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.01.2014, 14:35 #6
Цитата Сообщение от outoftime Посмотреть сообщение
я не говорю что не надо знать что такое приведение типа и когда его надо использовать
А я и не говорил, что вы такое говорили.
Цитата Сообщение от outoftime Посмотреть сообщение
Опять таки это не вина шаблонов это в большей степени "мелкие" ошибки проектирования.
Это скорее не ошибки, а издержки проектирования. Невозможно написать абсолютно полностью обобщённый код, который оперирует исключительно интерфейсами верхнего уровня иерархии (только в этом случае мы сможем обойтись без приведений типов), потому что такой полностью обобщённый код будет уже реализовывать полноценный искусственный интеллект. Другого варианта я не вижу.
По этому поводу есть хорошая цитата (не помню, кто автор) (вольное цитирование): "Когда пишете свою программу, сильно не увлекайтесь, а не то можете случайно написать операционную систему".

Не по теме:

Разработчикам emacs бы эту цитату взять на вооружение...

outoftime
18.01.2014, 08:08     Приведение типов
  #7

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
Разработчикам emacs бы эту цитату взять на вооружение...
Я сам vim-ом пользуюсь (:

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2014, 08:08
Привет! Вот еще темы с ответами:

Приведение типов - C++
При вводе с клавиатуры s = 11 и a = 1.1, получаем 9. Результат переменной d = 10, это правильно. В чём подвох? int main() { ...

Приведение типов - C++
Доброго времени суток. Данный кусок кода выделяет целую часть. Потом, вычитая из исходного числа целую часть, получаем дробную. Почему...

приведение типов - C++
Объясните, пожалуйста, почему возникает такая ошибка: error C2666: 'operator *' : 4 overloads have similar conversions ? Из-за того,...

Приведение типов - C++
Как привести наследника ко второму родителю? class Parent1 { public: int a; int b; int c; }; class Parent2


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.01.2014, 08:08
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru