Jaki rodzaj rzutowania ma tu miejsce (w B::get()
)?Klasa pochodna od podstawy do podstawy
class A {
public:
A() : a(0) {}
int a;
};
class B : public A {
public:
A* get() {
return this; //is this C-style cast?
}
};
int main()
{
B b;
cout << b.get()->a << "\n";
system("pause");
return 0;
}
Widziałem tego rodzaju kod w słynnym API. Czy lepszą praktyką jest wykonywanie static_cast<A*>(this);
?
W ogóle nie ma rzucania, a jedynie niejawne nawrócenie. Gips to wyraźna konwersja. – molbdnilo