请解释一下C++中的虚函数的作用，要求回答包含三句话，第一句话说明虚函数的基本概念，第二句说明虚函数的作用，第三句举例说明虛函数的使用场景。
user
虚函数是C++中用于实现多态的一种机制，允许在派生类中重定义与基类同名的函数。作用是在基类指针指向派生类对象时，能够调用派生类中的函数而非基类中的函数。例如，当一个图形类（Shape）定义了一个虚函数draw()，其派生类如Circle, Square等可以重定义该函数，从而在调用draw()时，能够根据对象的实际类型来绘制不同形状。
assistant