Its purpose is to tell the compiler that what function we would like to call on the basis of the object of derived class.
In c++,virtual keyword is used for OVERRIDING.
NORMAL:-
1) Declare main class
function show()
2) Define derived class(s) with functions
3) main()
3.1)Create pointer variable of base class
ie; if base class name is B.
then,
B *p;
3.2)Create object for base_class & derived classes
Base_class named B
derived_class1 named D1
derived_class2 named D2
ie;
B base1;
D1 der1;
D2 der2;
3.3)Assign address of base_class & derived_class(s) to pointer_variable_of_Base_class
ie;
p=&base1;
call show() function
p->show();
likewise......
p=&der1;
p->show();
p=&der2;
p->show();
Without Virtual keyword: O/p will be
B
B
B
-----------------------------------------------------------------------------------------
1) Declare Base class
function show()
ie;
class B;
{
virtual void show()
{
cout<<"B"<<"\n";
}
};
2) Define derived class(s) with functions
ie;
class D1:public B
{
void show()
{
cout<<"D1"<<"\n";
}
};
class D2:public B
{
void show()
{
cout<<"D2"<<"\n";
}
};
3) main()
3.1)Create pointer variable of base class
ie; if base class name is B.
then,
B *p;
3.2)Create object for base_class & derived classes
Base_class named B
derived_class1 named D1
derived_class2 named D2
ie;
B base1;
D1 der1;
D2 der2;
3.3)Assign address of base_class & derived_class(s) to pointer_variable_of_Base_class
ie;
p=&base1;
call show() function
p->show();
likewise......
p=&der1;
p->show();
p=&der2;
p->show();
getch();
With Virtual keyword: O/p will be
B
D1
D2
--------------------------------------------------------------------------------------
ABOVE PROGRAM:- /* By ARUN ANOOP M */
--------------------------------------------------------------------------------------
#include<iostream.h>
class B;
{
virtual void show()
{
cout<<"B"<<"\n";
}
};
class D1:public B
{
void show()
{
cout<<"D1"<<"\n";
}
};
class D2:public B
{
void show()
{
cout<<"D2"<<"\n";
}
};
main()
{
B *p;
B base1;
D1 der1;
D2 der2;
p=&base1;
p->show();
p=&der1;
p->show();
p=&der2;
p->show();
getch();
}
--------------------------------------------------------------------------------------
Another PROGRAM:- /* By ARUN ANOOP M */
--------------------------------------------------------------------------------------
#include<iostream.h>
class B;
{
void show()
{
cout<<"Operations"<<"\n";
}
};
class D1:public B
{
void get()
{
cout<<Enter 2 nos:";
cin>>a>>b;
}
void show()
{
cout<<"Addition"<<a+b<<"\n";
}
};
class D2:public B
{
void show()
{
cout<<"Subtraction"<<a-b<<"\n";
}
};
main()
{
B *p;
B base1;
D1 der1;
D2 der2;
p=&base1;
p->show();
p=&der1;
p->get();
p->show();
p=&der2;
p->get();
p->show();
getch();
}
O/p:-
Enter 2 nos: 4 3
7
Enter 2 nos: 2 1
3
-----------------------------------------------------------------------------------------
#include<iostream.h>
class B;
{
virtual void show()
{
cout<<"Operations"<<"\n";
}
};
class D1:public B
{
void get()
{
cout<<Enter 2 nos:";
cin>>a>>b;
}
void show()
{
cout<<"Addition"<<a+b<<"\n";
}
};
class D2:public B
{
void show()
{
cout<<"Subtraction"<<a-b<<"\n";
}
};
main()
{
B *p;
B base1;
D1 der1;
D2 der2;
p=&base1;
p->show();
p=&der1;
p->get()
p->show();
p=&der2;
p->get();
p->show();
getch();
}
O/p:-
Enter 2 nos:3 4
7
Enter 2 nos:4 3
1
--------------------------------------------------------------------------------------
No comments:
Post a Comment