Вопросы по теме 'static-cast'

Должен ли я использовать static_cast или reinterpret_cast при приведении void * к чему угодно
И static_cast , и reinterpret_cast , похоже, отлично подходят для преобразования void* в другой тип указателя. Есть ли веская причина отдавать предпочтение одному другому?
70864 просмотров

Почему я не могу static_cast между char * и unsigned char *?
По-видимому, компилятор считает их несвязанными типами и, следовательно, требуется reinterpret_cast . Почему это правило?
42724 просмотров

static_cast и RTTI против dynamic_cast
Пожалуйста, обратите внимание на приведенный ниже код. Насколько я знаю, dynamic_cast медленнее, чем static_cast. Потому что он оценивает тип во время выполнения. Я сомневаюсь, что если мы используем static_cast с typeid(), как показано ниже, это...
4371 просмотров
schedule 13.04.2022

static_cast void* char* против static_cast void** char**
Если я делаю следующее, все в порядке: char* cp = "abc"; void* vp = NULL; vp = static_cast<void*>(cp);//ok cp = static_cast<char*>(vp);//ok Но нет следующего: char** cpp = &cp; void** vpp = NULL; vpp =...
1847 просмотров
schedule 15.07.2023

С++ static_cast - более безопасный способ. Зачем?
Я слышал, что статическое приведение — более безопасный способ приведения. Допустим, у меня есть следующий код: int nValue = 48; char ch = nValue; Это неявное литье. Но менять 4 байта на 1 байт небезопасно. Если я изменю этот код на...
822 просмотров
schedule 31.03.2024

static_cast накладные расходы на базовый класс и член этого класса
У меня есть эти классы: class A{}; class B { public: A* ptr_obj; A obj; operator A*&() { return ptr_obj; } operator A&() { return obj; } }; class C : public B {}; Теперь у меня есть...
59 просмотров
schedule 09.10.2023

C++ Static_cast по указателю на виртуальный базовый класс
Примерно через 6 или 7 лет программирования почти исключительно на C++ я обнаружил, что: struct A { virtual ~A() = 0; // Abstract class }; A::~A() {} struct B : virtual A {}; int main() { A* a = new B;...
609 просмотров

static_cast этого в другой базовый класс
Является ли следующее использование static_cast в конструкторе «безопасным»? Для контекста я экспериментирую с оболочкой окна Win32, используя дизайн, основанный на политике. Часть этого включает в себя создание класса диспетчера путем...
66 просмотров

Приведение к разным базовым классам дает разные результаты. С++
Может быть, мой вопрос не совсем правильно сформирован, но мой код все прояснит. #include <iostream> using namespace std; struct A{int n;}; struct B{int n;}; struct C : A, B{}; int main() { C c; C* pc = &c;...
75 просмотров