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?