how to use virual function in real time example



how to use virual function in real time example..

Answer / yuva

You use virtual functions when you want to override a
certain behavior(read method) for your derived class than
the one implemented for the Base class and you want to do so
at run-time through an pointer to Base class.

The classical example is when you have a base class called
Shape and concrete shapes(classes) which derive from it.
Each concrete class overrirdes(implements a virtual method)
called Draw().

The class hierarchy as follows:

Class hierarchy

The following snippet shows the usage of the example, it
creates an array of Shape class pointers wherein each points
to distinct derived class object. At run-time invoking
Draw() method results in calling of the method overriden by
that derived class and the particular Shape is drawn(rather
rendered).

Shape *basep[] = { &line_obj, &tri_obj,
&rect_obj, &cir_obj};
for (i = 0; i < NO_PICTURES; i++)
basep[i] -> Draw ();

The above program just uses the pointer to the Base class
storing addresses of the Derived class objects provides a
loose coupling in the way that the program does not have to
change drastically if a new concrete derived class of shape
is added anytime because the are minimal code segments which
actually use(depend) on the concrete Shape type.

The above is a good example of Open Closed Principle of the
famous SOLID design principles.

Is This Answer Correct ?    0 Yes 0 No

Post New Answer

More C Interview Questions

What should be keep precautions while using the recursion method?

1 Answers  


how c source file in converted to exe file

5 Answers   KPIT,


how to generate the length of a string without using len funtion?

4 Answers  


Explain the use of fflush() function?

0 Answers  


what is ur strangth & weekness

0 Answers   Cognizant, LG Soft, NetEnrich,






int arr[] = {1,2,3,4} int *ptr=arr; *(arr+3) = *++ptr + *ptr++; Final contents of arr[]

6 Answers   Hughes,


how to find a 5th bit is set in c program

4 Answers   IBM,


What does the error message "DGROUP exceeds 64K" mean?

0 Answers   Celstream,


C program to find frequency of each character in a text file?

6 Answers  


c language interview questions & answer

0 Answers  


What are keywords in c with examples?

0 Answers  


Difference between Function to pointer and pointer to function

0 Answers  


Categories