C++静态绑定是什么?
时间: 2024-09-15 19:13:46 浏览: 40
深入理解C++的动态绑定和静态绑定
C++中的静态绑定是指函数调用和成员访问在编译期间就已确定,其依据是对象的静态类型,而不是实际的对象类型[^2]。这意味着,当你声明一个对象并为其分配内存时,函数调用的行为已经在编译阶段固定下来,不会因为运行时对象类型的改变而改变。例如:
```cpp
class Base {
public:
virtual void foo() { cout << "Base::foo()" << endl; }
};
class Derived : public Base {
public:
void foo() override { cout << "Derived::foo()" << endl; }
};
int main() {
Base* base_ptr = new Derived(); // 声明基类指针,静态绑定
base_ptr->foo(); // 在编译时,绑定的是Base::foo()
delete base_ptr;
return 0;
}
```
在这个例子中,即使`base_ptr`实际上指向的是`Derived`对象,由于静态绑定,`foo()`调用的行为仍然是`Base`的版本。这是静态绑定的一个典型体现。
阅读全文