Question: what is the difference between virtual function and function overriding?
Answer: Because virtual functions are called only for objects of class types, you cannot declare global or static functions as virtual. The virtual keyword can be used when declaring overriding functions in a derived class, but it is unnecessary; overrides of virtual functions are always virtual.