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

Posted buddho

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了virtual 函数只有在用指针或引用的方式访问,才会导致多态。相关的知识,希望对你有一定的参考价值。

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

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

 

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

 

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

 

1、upcast

2、* or &

以上是关于virtual 函数只有在用指针或引用的方式访问,才会导致多态。的主要内容,如果未能解决你的问题,请参考以下文章

Virtual

虚函数的调用

关于虚函数的那些事儿

OOP2(虚函数/抽象基类/访问控制与继承)

警告: deleting object of polymorphic class type which has non_virtual destructor

c++中的虚函数有啥作用?