0%

dynamic binding

只有在指针或者引用调用虚函数时候才会发生动态绑定,这时候编译器可以通过动态类型的对象来选择。

1
2
3
4
5
6
7
8
9
10
11
12
13
class A {
virtual void func(){
//...
}
};
class B : public A{
void func(){
//...
}
};
B b_obj;
A *a_obj=&b_obj;
a_obj->func();//发生了动态绑定,调用的是B::func()