static-cast

Dlaczego warto używać static cast (x) zamiast (int)x?

Słyszałem, że funkcja static_cast powinna być preferowana do c-style lub prostego odlewania w stylu funkcji. Czy to prawda? Dlaczego?

Jaka jest różnica między static cast< > a c style casting?

Czy Jest jakiś powód, aby preferować static_cast<> zamiast castingu w stylu C? Czy są równoważne? Czy to jakaś różnica prędkości?

static cast with boost:: shared PST?

Jaki jest odpowiednik static_cast z boost::shared_ptr? Innymi słowy, jak mam przepisać następujące Base* b = new Derived() ... b); Podczas używania shared_ptr? boost::shared_ptr<Base> b(new Derived()); boost::shared_ptr<Derived> d = ???

C++ nie może konwertować z bazy a na pochodną typu B za pomocą wirtualnej bazy a

Mam trzy klasy: class A {}; class B : virtual public A {}; class C : virtual public A {}; class D: public B, public C {}; ... ując statycznego rzutu z A * do B * dostaję poniższy błąd: cannot convert from base A to derived type B via virtual base A

Dlaczego mamy reinterpretować cast w C++, gdy dwa przykute statyczne cast mogą wykonać swoje zadanie?

Powiedzmy, że chcę rzucić A* do char* i odwrotnie, mamy dwa wyjścia (mam na myśli, wielu z nas myśli, że mamy dwa wyjścia, po ... j pracy? który cast użyć; static_cast lub reinterpret_cast? Cast from Void * to TYPE*: static_cast or reinterpret_cast

Dlaczego nie można użyć obsady statycznej do obsady w dół, gdy w grę wchodzi dziedziczenie wirtualne?

Rozważ następujący kod: struct Base {}; struct Derived : public virtual Base {}; void f() { Base* b = new Derived; ... y z Base. Usunięcie virtual z dziedziczenia powoduje, że kod jest poprawny. Jaki jest techniczny powód istnienia tej reguły?

Właściwy sposób odlewania typów wskaźników

Biorąc pod uwagę następujący kod (oraz fakt, że VirtualAlloc() Zwraca a void*): BYTE* pbNext = reinterpret_cast<BYTE*> ... adku, czy tylko oba ważne rzuty wskazówkowe? Czy standard C++ ma preferujesz ten przypadek, sugerując sposób zamiast innego?