Function overriding applies to class methods and is only applicable within a derived class. Derived classes inherit all the public and protected members of their base classes, and all inherited methods can be overridden by the derived class to provide implementations that are specific to the derivative. The base class implementations should be thought of as being more generalised implementations that are specific only to the base class itself. However, some or all of the base class implementations may well be sufficient for your derivative in which case there is no need to override those methods at all. You only need to override methods that require more specialised implementation.
Methods that are declared virtual within the base class are expected to be overridden by the derived class. By contrast, all pure-virtual methods must be overridden otherwise the derived class, like its base class, is rendered abstract. You cannot instantiate an abstract class -- it is intended to be a conceptual object (like a shape) rather than an actual object (like a square or a circle).
You may also override non-virtual methods, however the fact they are non-virtual in the first place means that, barring an oversight on the part of the base class designer, it is not expected that you do so. That doesn't mean that you cannot override them, but it does mean that the base class methods (including all overloaded version of the override) are effectively hidden from the derived class. Often this would be undesirable but, occasionally, that's exactly what you want.
Base classes cannot foresee what classes you might derive from them in the future. Fortunately they do not need to know anything about those classes (if they did, you'd have to continually modify the base class every time you created a new derivative). By declaring methods to be virtual, the virtual table ensures that all derived classes will "do the right thing" even when those methods are called implicitly from within the base class implementations. As a result, there is no need for a base class to ever know the runtime information of its derived classes (and if there is, you'll immediately know there's something very wrong with your class design).
Often an override simply needs to augment a base class method rather than override it completely. This is achieved by calling the base class method explicitly from anywhere within the overridden implementation. This reduces the need to duplicate otherwise functional code that already exists in the base class. It should be noted that base class methods should never be called explicitly from within the base class itself; the override is always expected to be called (implicitly) and this behaviour should only ever be over-ruled by the derivative. Calling a base class method explicitly from outwith the derived class may cause unwanted side-effects because the derived class will no longer "do the right thing".
Pure-virtual methods of a base class may or may not provide an implementation, but either way you must provide an implementation within your override. If calling the base class method explicitly causes a compile time error (stating no such method exists) then the base class provides no implementation at all, therefore you are expected to provide a complete implementation. As an example, a shape class may have a pure-virtual Draw() method but it cannot implement it without knowing what type of shape it is. Whereas a circle class that is derived from the shape class will always know how to draw itself and must therefore provide the complete implementation of the Draw() method.
Overridden virtual methods come into their own when dealing with collections of objects. The objects themselves needn't be of the same type, but so long as they all share a common base class, you can build a collection from the base class alone (all the objects have an "is-a" relationship with their common base class). The collection itself is only concerned with what the base class is actually capable of, as defined by the base class interface, but the virtual table ensures that, regardless of the runtime type of the derived classes, every object in the collection exhibits the correct behaviour.
I don't use that function in C programme.
The c language does not have template functions. That is a c++ thing.
Yes. Examples can be found in stdio.h
There is no builtin function 'counta' in C.
The operators are &&, &, |, . IF function does not exist in C language. C has if-statements
It is a letter and function it.
The main function defines the entry point of an application in C.
I don't use that function in C programme.
There is no such term as "building function" in C++.
The c language does not have template functions. That is a c++ thing.
Yes. It is the function f(x) = c where c is a constant.
in c main function initailly called by operating system.
if you do not used main function in c program when errors are accrued
No objects in C. For C++, it is destructor.
Yes. Examples can be found in stdio.h
A function of the form f(x) = mx + c where m and c are constants is linear.
libray in c++