C++中虚函数和纯虚函数有何本质区别?