C++|28.虚函数

虚函数

virtual的作用

用来告诉该函数是一个虚函数。

override的作用

C++|28.虚函数_第1张图片

使代码具有可读性

告诉读者,该函数是要进行覆写的。

预防bug

加上override相当于告诉编译器,一定要找到对应的虚函数进行覆写,也就是说,如果没有对应的虚函数的话,那么将会报告错误。

虚函数所造成的损失/开销

内存损失/开销

虚函数会多要求去生成一张v(virtual)表。
这张v表,以便能从这些同名函数中挑选出真正需要到的那个函数。
除此之外,也需要在类中多开设单独的一个指针来指向这个v表。

时间损失/开销

在调用虚函数时,都会遍历整张表,从而找到正确的虚函数入口。
遍历这个过程本身就是一个耗费时间的过程。

你可能感兴趣的:(C++,c++)