virtual 函数只有在用指针或引用的方式访问,才会导致多态。

只有用指针和引用,才会动态绑定。才会在运行时候从虚表中找对应的成员函数。

如果只是用.访问成员函数,是静态绑定,在编译时刻就固定好的。

另外,父类的虚函数,子类不管加不加virtual关键字,都是虚函数。最好加上。

同样的,用指针和引用,访问普通函数的时候,不会发生多态。多态的两个条件,缺一不可。

1、upcast

2、* or &

猜你喜欢

转载自www.cnblogs.com/buddho/p/10600150.html