Reference Blog: http://blog.sina.com.cn/s/blog_8ddc5c2e01013hbd.html
Believe to see this header dizzy, in fact, they put together to see, it will be more clearly identified.
Overloading: The function name is the same, there must be at least one difference in the number of arguments, parameter types, or parameter order of the function. The type of the function return value can be the same or different.
overrides: Also known as overrides, typically occur in subclasses and parent classes Inheritance Relationship between. subclasses redefine virtual functions with the same name and parameters in the parent class.
Redefine : Also known as hiding, subclass to redefine a parent class with the same name. non-virtual functions (a parameter list can be different), which refers to a function of a derived class that masks a base class function with the same name.
if a class exists with the same function as the parent class, then this class will overwrite the method of its parent class, unless you cast it to the parent class type at the time of invocation, otherwise attempting to make a similar overload call to the child class and parent class is unsuccessful.
overrides need to be noted: 1. The overridden function cannot be static. It has to be virtual. 2. The overriding function must have the same type, name, and argument list 3. The access modifier of the overriding function can be different. Although virtual is private, it is also possible to rewrite the overridden public,protected in a derived class.
The redefinition rules are as follows:A, if the function of the derived class and the function of the base class have the same name, but the parameters are different, at this point, the function of the base class is hidden, regardless of whether it is virtual or not. B, if the function of the derived class has the same name as the function of the base class, and the parameters are the same, but the base class function does not have the Vitual keyword, then the function of the base class is hidden (if the same virtual overwrite is overridden).
The difference between overloading, overriding, and redefining in C + +