Call by value and Call by reference using classes || Menu driven || C++
In this, we are going see a menu driven program to show the difference in call by value and call by reference using classes in C++ Programming Language.


The Code given below can be used in TURBO C++ Compilers: -

#include <iostream.h>
#include<conio.h>
#include <stdio.h>
#include <string.h>

class CallByValue
{
public:
    void change(int a)
    {
        a += 10;
        cout << "Value of a inside change function: " << a << "\n";
    }
    void BeforeChange()
    {
        int a = 10;
        cout << "Value of a before calling change function: " << a << "\n";
        change(a);
        cout << "Value of a after calling change function: " << a << "\n";
    }
};

class CallByReference
{
public:
    void change(int *a)
    {
        *a = *a + 10;
        cout << "Value of a inside change function: " << *a << "\n";
    }
    void BeforeChange()
    {
        int a = 10;
        cout << "Value of a before calling change function: " << a << "\n";
        change(&a);
        cout << "Value of a after calling change function: " << a << "\n";
    }
};

int main()
{
    clrscr();
    char ch = 'Y';
    int choice;
    while (ch == 'Y' || ch == 'y')
    {
        cout << "Enter choice:\n";
        cout << "1. Call by value\n";
        cout << "2. Call by reference\n";
        cin >> choice;
        switch (choice)
        {
        case 1:
            CallByValue obj1;
            obj1.BeforeChange();
            break;
        case 2:
            CallByReference obj2;
            obj2.BeforeChange();
            break;
        default:
            cout << "Enter valid choice";
        }
        cout << "Want to continue?[Y/N]";
        cin >> ch;
    }
    getch();
    return 0;
}


The Code given below can be used in gcc/g++ Compilers: -

#include <iostream>
using namespace std;

class CallByValue
{
public:
    void change(int a)
    {
        a += 10;
        cout << "Value of a inside change function: " << a << "\n";
    }
    void BeforeChange()
    {
        int a = 10;
        cout << "Value of a before calling change function: " << a << "\n";
        change(a);
        cout << "Value of a after calling change function: " << a << "\n";
    }
};

class CallByReference
{
public:
    void change(int *a)
    {
        *a = *a + 10;
        cout << "Value of a inside change function: " << *a << "\n";
    }
    void BeforeChange()
    {
        int a = 10;
        cout << "Value of a before calling change function: " << a << "\n";
        change(&a);
        cout << "Value of a after calling change function: " << a << "\n";
    }
};

int main()
{
    char ch = 'Y';
    int choice;
    while (ch == 'Y' || ch == 'y')
    {
        cout << "Enter choice:\n";
        cout << "1. Call by value\n";
        cout << "2. Call by reference\n";
        cin >> choice;
        switch (choice)
        {
        case 1:
            CallByValue obj1;
            obj1.BeforeChange();
            break;
        case 2:
            CallByReference obj2;
            obj2.BeforeChange();
            break;
        default:
            cout << "Enter valid choice";
        }
        cout << "Want to continue?[Y/N]";
        cin >> ch;
    }
    return 0;
}

#ENJOY CODING

Post a Comment

FOR ANY DOUBTS AND ERRORS FEEL FREE TO ASK. YOUR DOUBTS WILL BE ADDRESSED ASAP

Previous Post Next Post