a) Write a program to illustrate the use of virtual, non-virtual functions.
#include <iostream>
class Base
{
public:
virtual void VirtualFunc()
{
std::cout << "Base::VirtualFunc";
}
void NonVirtualFunc()
{
std::cout << "Base::NonVirtualFunc";
}
};
class Derived : public Base
{
public:
virtual void VirtualFunc()
{
std::cout << "Derived::VirtualFunc";
}
void NonVirtualFunc()
{
std::cout << "Derived::NonVirtualFunc";
}
};
int main()
{
Base b1;
Derived d1;
b1.VirtualFunc(); std::cout << "\n";
b1.NonVirtualFunc(); std::cout << "\n";
d1.VirtualFunc(); std::cout << "\n";
d1.NonVirtualFunc(); std::cout << "\n\n";
Base* b2 = new Base;
Derived* d2 = new Derived;
b2->VirtualFunc(); std::cout << "\n";
b2->NonVirtualFunc(); std::cout << "\n";
d2->VirtualFunc(); std::cout << "\n";
d2->NonVirtualFunc(); std::cout << "\n\n";
Base* b3 = new Base;
Base* d3 = new Derived;
b3->VirtualFunc(); std::cout << "\n";
b3->NonVirtualFunc(); std::cout << "\n";
d3->VirtualFunc(); std::cout << "\n";
d3->NonVirtualFunc(); std::cout << "\t<----- Attention!\n\n";
delete b2;
delete d2;
delete b3;
delete d3;
return 0;
}
Comments
Leave a comment