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

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

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

static_cast, исключение - C++

04.10.2011, 14:57. Просмотров 557. Ответов 2
Метки нет (Все метки)

Привет.

dynamic_cast<> может выбросить исключение, при невозможности преобразования типа при работе с ссылками.

старое приведение типа (int)(xxxx) - не выбрасывает исключения , а только может возвратить статус

а static_cast<>() может выкинуть исключение?

тоесть , например при рефакторинге старого кода, могу я заменить все (int)() на static_cast<int>(), не опасаясь что потом будут ошибки?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 14:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос static_cast, исключение (C++):

static_cast - C++
В чем ошибка. ругается на &lt; и ( в строке newpound=static_cast&lt;int&gt;(newpound); #include &lt;iostream.h&gt; #include &lt;conio.h&gt; int...

Static_cast - C++
Подскажи пожалуста return static_cast&lt;double&gt;(get_num())/get_den(); как это понимать, а то в книге написано, но не объяснено, а в...

static_cast - C++
Почему не работает static_cast&lt;float&gt;(n/m);? Как сделать чтобы он все же перевел это к типу float? #include &lt;iostream&gt; using...

Использование static_cast - C++
Здравствуйте! Подскажите, почему такая конструкция не компилируется. int main() { int nWord = 4; char temp = static_cast&lt;...

Оператор static_cast - C++
int N; cout &lt;&lt; &quot;введите размер маccива: &quot;; cin &gt;&gt; N; vector&lt;double&gt; matrix (N); for (int i = 0; i &lt; N; i++) //заполнение...

чем отличаются static_cast от - C++
Привет всем! чем отличаются явное приведения типа long tmp = static_cast&lt;long&gt;(45.6); от long tmp = long(54.34); ?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
04.10.2011, 15:00 #2
static_cast работает в момент компиляции. Если не сможет привести тип, то будет сообщение компилятора об ошибке.
2
grizlik78
Эксперт С++
1913 / 1445 / 113
Регистрация: 29.05.2011
Сообщений: 3,001
04.10.2011, 15:22 #3
Это если речь про встроенные типы. При использовании классов исключение может возникнуть в момент преобразования внутри функций класса.
Впрочем, "старое приведение" работает в этом смысле точно так же. Так что можно менять. Ещё у static_cast<type> приоритет вроде чуть повыше, чем у (type).
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2011, 15:22
Привет! Вот еще темы с ответами:

Как работает static_cast? - C++
#include&lt;iostream&gt; using namespace std; int main(){ int a; cin&gt;&gt;a; cout&lt;&lt;sizeof(a)&lt;&lt;endl;//4 static_cast&lt;char&gt;(a); ...

Ключевое слово static_cast - C++
Чё это такое?Зачем оно нужно?

Не очень понимаю static_cast - C++
Цитирую Прата: Под она имеется в виду операция static_cast Эксперимент: int main(){ int x = 32; char y = 2;

Чем отличаются dynamic_cast и static_cast? - C++
если можно пример напишите


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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