Return multiple values from a function in C++

In this tutorial, we will learn how to return multiple values from a function in C++.

In C++, we cannot directly return the multiple values from a function. But, instead, we will be using different tricks for returning multiple values from a function.

So, we can return multiple values from a function via Call by Address or Call by Reference.

Call By Address to return multiple values from a function

The sample code is as follows…

#include <iostream>
#include<bits/stdc++.h>
using namespace std;

void func(int x,int y,int *c,int *d)
{
    *c=x+y;
    *d=x-y;
}
int main()
{
    int x,y;
    cout<<"Enter the values of x and y\n";
    cin>>x>>y;
    int c,d;
    func(x,y,&c,&d);
    cout<<"The value of c is : "<<c<<" \nThe value of d is : "<<d;
    return 0;
}

Output :

Enter the values of x and y
10 5
The value of c is : 15 
The value of d is : 5

Explanation :

  • Here we need to take the input from the user(i.e… x and y values).
  • Then we must pass the parameters x and y values with c and d by call by address.
  • Then the operations which need to be done on c and d are performed.
  • At last, by cout statement, the multiple values are returned.

Call By Reference

The Sample code is as follows…

#include <iostream>
#include<bits/stdc++.h>
using namespace std;

void func(int x,int y,int &c,int &d)
{
    c=x+y;
    d=x-y;
}
int main()
{
    int x,y;
    cout<<"Enter the values of x and y\n";
    cin>>x>>y;
    int c,d;
    func(x,y,c,d);
    cout<<"The value of c is : "<<c<<" \nThe value of d is : "<<d;
    return 0;
}

Output :

Enter the values of x and y
10 5
The value of c is : 15 
The value of d is : 5

Explanation :

  • Even here first the x and y values were read from the user.
  • Then that x and y values along with c and d are passed as the parameters by call by reference.
  • Then c and d get its value by addition and subtraction.
  • Then at last the multiple values are returned by using cout.

Leave a Reply

Your email address will not be published.