In C++ können Sie mehrere C-Casting- oder C++ - Casts werfen. Bjarne Stroustrup und viele andere C++ - Experten sagen, dass ein gutes Design kein Casting haben sollte.Wie komme ich vom Casting in C++ weg?
Kannst du mir helfen, den Code unten neu zu gestalten, um den Cast loszuwerden?
void CProgressBar::SetPosition(int nPos); //unable to change
void CSaveDialog::UpdatePosition(double dProgress)
{
double percentOfProgress = dProgress * 100;
m_pProgressBar->SetPosition(static_cast<int>(percentOfProgress));
}
Ich kann UpdatePosition ändern, aber nicht SetPosition.
Wie ist es einfach, Int an UpdatePosition weiterzuleiten? –
Das ist eine gute Frage, aber das Beispiel ist nicht repräsentativ für Stroustrups Bedeutung. Die Casting-Konversation würde einen völlig anderen Weg einschlagen, wenn Ihr Beispiel ein Basisklassenzeiger gegenüber einem abgeleiteten Klassenzeiger gewesen wäre. – Kieveli