因为基类中的func函数被声明虚函数,所以基类的派生类可以重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。所以通过这个void test(Student& s){ s.func( );}函数可知,它是通过引用来访问基类和派生类中的同名函数。
虚函数 使用虚函数和指针或者引用技术想结合,可以实现用基类指针或者基类引用调到派生类函数的功能。 你把你程序用virtual 删除掉,再运行一下程序看看。