在 C++ 中,靜態聯編(Static Binding)和動態聯編(Dynamic Binding)是兩種不同的函數調用綁定機制,核心區別在于確定函數調用的時機和多態性的支持。以下是詳細解釋:
1. 靜態聯編(Static Binding)
- 定義:在編譯階段確定函數調用與具體實現的關系。
- 特點:
- 由編譯器直接確定調用的函數地址。
- 不支持運行時的多態性。
- 效率高(無運行時開銷)。
- 適用場景:
- 普通函數調用(非虛函數)。
- 函數重載(Overloading)。
- 運算符重載。
- 模板函數(編譯時實例化)。
- 示例:
class Base { public:void show() { cout << "Base::show()" << endl; } // 非虛函數 };class Derived : public Base