Результаты поиска по запросу "static-cast"

1 ответ

Безопасность недействительного даункаста с использованием static_cast (или reinterpret_cast) для наследования без добавления членов

Мне было интересно, что стандарт говорит о безопасности следующего кода: class A { int v; }; class B: public A { }; // no added data member A a; B& b = static_cast<B&>(a);Очевидно, тип времени выполненияa являетсяAнеBТаким образом, актерский ...

2 ответа

, Попробуй.

уstatic_cast не может опуститься с виртуальной базы? struct A {}; struct B : public virtual A {}; struct C : public virtual A {}; struct D : public B, public C {}; int main() { D d; A& a = d; D* p = static_cast<D*>(&a); //error }g ++ 4.5 ...

2 ответа

Разница в C ++ между добавлением константности с помощью static_cast и const_cast объекта this?

ТОП публикаций

1 ответ

Законно ли приводить указатель на ссылку на массив, используя static_cast в C ++?

2 ответа

Почему я могу использовать static_cast с void *, но не с char *

я знаю это

2 ответа

На некоторых архитектурах указатель может быть больше, чем просто адрес. Изменение типа указателя может изменить его битовую комбинацию, даже если он не изменяет указанный адрес.

ущем проекте стандарта (и C ++ 17),это [http://eel.is/c++draft/expr.static.cast#13]написано о static_castingvoid *: Значение типа «указатель наCV1 void »можно преобразовать в значение типа« указатель наCV2 T ”, где T - тип объекта иCV2 является ...

1 ответ

Каковы затраты времени выполнения static_cast, если добавить константу, сохраняя тот же тип?

7 ответов

Использование литья в стиле C не является безопасным. Он никогда не проверяет, чтобы разные типы можно было смешивать вместе. Приведение типов в C ++ помогает вам убедиться, что приведение типов выполняется в соответствии со связанными объектами (на основе используемого вами приведения). Это более рекомендуемый способ использования приведений, чем использование традиционных приведений в стиле C, которые всегда вредны.

, что я хочу броситьA* вchar* и наоборот, у нас есть два варианта (я имею в виду, многие из нас думают, что у нас есть два варианта,потому что оба, кажется, работают! Отсюда и путаница!) struct A { int age; char name[128]; }; A a; char *buffer ...

7 ответов

C ++ не может преобразовать из базы A в производный тип B через виртуальную базу A

4 ответа

Должен ли я использовать static_cast или reinterpret_cast при приведении void * к чему-либо