Welche Art von Besetzung findet hier statt (in B::get()
)?Gegossene abgeleitete Klasse zur Basis
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;
}
Ich habe diese Art von Code in einer berühmten API gesehen. Ist es besser, static_cast<A*>(this);
zu tun?
Es gibt überhaupt kein Casting, nur eine implizite Konvertierung. Ein Cast ist eine explizite Conversion. – molbdnilo