About Virtual functions and their use ?

Answer Posted / sandeep

Virtual keyword is used to perform the dynamic binding
instead of early binding. To be brief below is the example

Class base
{
void display()
{
cout<<"in Base";
}
}
Class derived: public base
{
void display()
{
cout<<"in derived";
}
}
void main()
{
base* ptr;

ptr = new derived;
ptr->display();
}

When we execute above program output will be displayed as
"in base", but expected output was "in derived". So compiler
was choosing member function which matches the type of the
pointer rather than the member function which matches the
content of the pointer. But when we use Virtual keyword in
base class, it perform the dynamic binding, i.e., at run
time it choose the function to execute and executes "in
derived". So when we use virtual keyword, compiler will
select the member function which matches the content of the
pointer and it will ignore the member function which matches
the type of the pointer.

Is This Answer Correct ?    17 Yes 1 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is gac? What are the steps to create an assembly and add it to the gac?

706


explain Garbage collector’s functionality on unmanaged code

722


What are assemblies?

735


Whats an assembly? Describe the importance of assembly?

715


What is default value of enum c#?

678


How does bubble sort work?

683


What is the difference between arraylist and list in c#?

647


Are arrays immutable c#?

710


what is collections in .net? why we use?

1909


What is Dependency of Injection?

724


Is stringbuilder faster than string concatenation c#?

686


What is c# windows form application?

713


What is a nullreferenceexception?

763


What is datagrid c#?

673


How does bitwise work?

699