1. The virtual function must be member of some class.
2. They can not be static members because virtual members is always a member of particular object in a class rather than member of class as a whole.
3. They are accessed by using object pointers.
4. A virtual function can be friend of another class.
5. A virtual function in a class must be defined even though it must not be used.
6. We can not have virtual constructor but we can have virtual destructors.
7. The keyword virtual should not be repeated in the definition if the definition occurs outside the class declaration.
8. A base class pointer can hold the address of the objects of derived classes but pointer to derived class can not hold the address of the object of base class.
#include<iostream.h>
#include<conio.h>
class base
{
public:
void display( )
{
cout<<"\nDisplay Base";
}
virtual void show( )
{
cout<<"\nShow base";
}
};
class Derived:public Base
{
public:
void display( )
{
cout<<"\nDisplay Derived";
}
void show( )
{
cout<<"\n Show derived";
}
};
void main( )
{
Base b;
Derived d;
Base *ptr;
ptr=&b;
ptr->display( );
ptr->show( );
ptr=&d;
ptr->display( );
ptr->show( );
getch( );
}
Output:-
Display Base
Show base
Display Base
Show derived
2. They can not be static members because virtual members is always a member of particular object in a class rather than member of class as a whole.
3. They are accessed by using object pointers.
4. A virtual function can be friend of another class.
5. A virtual function in a class must be defined even though it must not be used.
6. We can not have virtual constructor but we can have virtual destructors.
7. The keyword virtual should not be repeated in the definition if the definition occurs outside the class declaration.
8. A base class pointer can hold the address of the objects of derived classes but pointer to derived class can not hold the address of the object of base class.
#include<iostream.h>
#include<conio.h>
class base
{
public:
void display( )
{
cout<<"\nDisplay Base";
}
virtual void show( )
{
cout<<"\nShow base";
}
};
class Derived:public Base
{
public:
void display( )
{
cout<<"\nDisplay Derived";
}
void show( )
{
cout<<"\n Show derived";
}
};
void main( )
{
Base b;
Derived d;
Base *ptr;
ptr=&b;
ptr->display( );
ptr->show( );
ptr=&d;
ptr->display( );
ptr->show( );
getch( );
}
Output:-
Display Base
Show base
Display Base
Show derived
0 Comments:
Post a Comment