Вопросы по теме 'static-cast'
Должен ли я использовать static_cast или reinterpret_cast при приведении void * к чему угодно
И static_cast , и reinterpret_cast , похоже, отлично подходят для преобразования void* в другой тип указателя. Есть ли веская причина отдавать предпочтение одному другому?
70864 просмотров
schedule
28.04.2024
Почему я не могу static_cast между char * и unsigned char *?
По-видимому, компилятор считает их несвязанными типами и, следовательно, требуется reinterpret_cast . Почему это правило?
42724 просмотров
schedule
20.07.2023
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 просмотров
schedule
03.07.2022
static_cast этого в другой базовый класс
Является ли следующее использование static_cast в конструкторе «безопасным»?
Для контекста я экспериментирую с оболочкой окна Win32, используя дизайн, основанный на политике. Часть этого включает в себя создание класса диспетчера путем...
66 просмотров
schedule
22.12.2023
Приведение к разным базовым классам дает разные результаты. С++
Может быть, мой вопрос не совсем правильно сформирован, но мой код все прояснит.
#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 просмотров
schedule
26.05.2023