Answer to Question #192875 in C++ for DIVYAM SINGH

Question #192875

a) Write a program to illustrate the use of virtual, non-virtual functions.


1
Expert's answer
2021-05-13T09:56:16-0400
#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;    
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment