在C++中,你可以施展幾種方式,C風格的轉換或C++轉換。 Bjarne Stroustrup和其他一些C++專家說,一個好的設計應該沒有鑄造。如何才能擺脫C++中的鑄造?
你能不能幫我在這裏與重新設計下面的代碼擺脫的演員?
void CProgressBar::SetPosition(int nPos); //unable to change
void CSaveDialog::UpdatePosition(double dProgress)
{
double percentOfProgress = dProgress * 100;
m_pProgressBar->SetPosition(static_cast<int>(percentOfProgress));
}
我可以修改UpdatePosition,但不能修改SetPosition。
簡單地將int傳遞給UpdatePosition怎麼樣? – 2009-06-25 13:00:50
這是一個很好的問題,但這個例子並不代表Stroustrup的含義。如果你的例子是一個基類指針和派生類指針,那麼轉換對話將採用完全不同的路線。 – Kieveli 2009-06-25 13:09:05