Virtual Function - Purpose

Purpose

Further information: Dynamic dispatch

The concept of the virtual function solves the following problem:

In OOP when a derived class inherits from a base class, an object of the derived class may be referred to via a pointer or reference of either the base class type or the derived class type. If there are base class methods overridden by the derived class, the method actually called by such a reference or pointer can be bound either 'early' (by the compiler), according to the declared type of the pointer or reference, or 'late' (i.e. by the runtime system of the language), according to the actual type of the object referred to.

Virtual functions are resolved 'late'. If the function in question is 'virtual' in the base class, the most-derived class's implementation of the function is called according to the actual type of the object referred to, regardless of the declared type of the pointer or reference. If it is not 'virtual', the method is resolved 'early' and the function called is selected according to the declared type of the pointer or reference.

Virtual functions allow a program to call methods that don't necessarily even exist at the moment the code is compiled.

In C++, virtual methods are declared by prepending the virtual keyword to the function's declaration in the base class. This modifier is inherited by all implementations of that method in derived classes, meaning that they can continue to over-ride each other and be late-bound.

Read more about this topic:  Virtual Function

Famous quotes containing the word purpose:

    “During the cattle drives, Texas cowboy music came into national significance. Its practical purpose is well known—it was used primarily to keep the herds quiet at night, for often a ballad sung loudly and continuously enough might prevent a stampede. However, the cowboy also sang because he liked to sing.... In this music of the range and trail is “the grayness of the prairies, the mournful minor note of a Texas norther, and a rhythm that fits the gait of the cowboy’s pony.””
    —Administration in the State of Texa, U.S. public relief program (1935-1943)

    “As peace is the end of war, so to be idle is the ultimate purpose of the busy.”
    —Samuel Johnson (1709–1784)

    “Possibly the Creator did not make the world chiefly for the purpose of providing studies for gifted novelists; but if he had done so, we can scarcely imagine that He could have offered anything much better in the way of material ...”
    —Elizabeth Stuart Phelps (1844–1911)