阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 身心障礙特種考試_三等_資訊處理:程式語言#98250
科目:程式語言
年份:110年
排序:0

申論題內容

一、在程式語言中有所謂的早期繫結(early binding)和晚期繫結(late binding),請詳述這兩個繫結的差異性和使用時機點,並以 C++程式語言說明如何達成晚期繫結的功能。

詳解 (共 1 筆)

詳解 提供者:hchungw

差異總結

特性 早期繫結(Early Binding) 晚期繫結(Late Binding)
繫結時間 編譯時 運行時
決定函數調用 編譯器在編譯期間決定 編譯器在運行時根據對象的類型決定
性能 高性能,無運行時開銷 需要運行時查找,存在一定性能開銷
靜態/動態多態性 靜態多態性(函數重載、運算符重載) 動態多態性(虛函數、多態)
使用場景 不需要依賴對象運行時類型的情況 需要根據對象運行時類型決定函數調用的情況

結論

早期繫結和晚期繫結在編譯時期和運行時期的行為不同,使用場景也不同。早期繫結適合在編譯期間可以確定的調用,而晚期繫結適合需要根據運行時對象類型進行調用的情況。在 C++ 中,晚期繫結通過虛函數來實現,這是實現多態性的一種重要機制。