[問題] 為何要使用Static cast
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
問題(Question):
面試的時候被問到的問題:
為什麼要用static cast
以一個繼承的class來說
ex.
class Base
{
....
}
class Derived: public Base
{
....
}
若 Base *a = new Derived();
想把a轉型回derived的類型
想請問 平常也是可以直接強轉
ex. (Derived*)a;
但為什麼要用static_cast呢?
我是覺得 可能會有轉型失敗的問題
但static_cast也是會有轉型失敗的問題 而且他不會檢查
此時用dynamic_cast比較好 至少會檢查是否為同一個class
那強轉和使用 static_cast / dynamic_cast的差異在??
thx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.16.15
推
11/17 21:34, , 1F
11/17 21:34, 1F
→
11/17 21:47, , 2F
11/17 21:47, 2F
推
11/17 22:16, , 3F
11/17 22:16, 3F
→
11/17 23:08, , 4F
11/17 23:08, 4F
→
11/17 23:50, , 5F
11/17 23:50, 5F
→
11/17 23:50, , 6F
11/17 23:50, 6F
→
11/17 23:51, , 7F
11/17 23:51, 7F
→
11/17 23:55, , 8F
11/17 23:55, 8F
→
11/17 23:55, , 9F
11/17 23:55, 9F
→
11/18 09:24, , 10F
11/18 09:24, 10F