C++学习笔记#8(2021.5.14)

140 阅读1分钟

派生类中的虚函数

1.一旦某个函数被声明成虚函数,则在所有派生类中它都是虚函数。所以派生类中的函数覆盖基类虚函数时并不是必须加上virtual关键字,同时形参和返回值必须完全一致。(除了基类虚函数返回值是自身指针)

但是子类覆盖父类的虚函数时,没有定义完全一致的形参列表,编译器也不会报错,此时编译器会把子类的这个函数当做一个新的函数(类似重载,这与程序员想要覆盖的想法背道而驰)。此时子类函数可以使用override关键字,告诉编译器这个函数是要覆盖父类虚函数的,如果没有覆盖(即弄错了返回值/函数名/形参),或没有虚函数能被覆盖,编译器就会报错。

喝了酒,先睡了