# C++ Program to Swap Two Numbers

In this example, we will perform a swapping of two number programs in c++. There are various ways you can swap two numbers:

1. using temporary variable
2. without temporary variable
3. using function
4. bitwise operator
5. using class

## swap two number using a temporary variable

``````
#include <iostream>
using namespace std;

int main()
{
int a = 10, b = 20, temp;
cout<<"Before swap a = "<<a<<" b = "<<b<<endl;
temp = a;
a = b;
b = temp;
cout<<"After swap a = "<<a<<" b = "<<b<<endl;

return 0;
}
``````
output
```Before swap a = 10 b = 20
After swap a = 20 b = 10```

In the above example, we have used three variables a, b, and temp.

• copy the value of the first variable into a temporary variable, `temp=a`.
• copy the value of the second variable into a first variable, `a=b`.
• now copy the temporary variable value into the second variable value, `b=temp`.

## Swap two numbers without using a temporary variable

``````
#include <iostream>
using namespace std;

int main()
{
int a = 10, b = 20;
cout<<"Before swap a = "<<a<<" b = "<<b<<endl;
b = a + b;
a = b - a;
b = b - a;
cout<<"After swap a = "<<a<<" b = "<<b<<endl;

return 0;
}
``````
output
```Before swap a = 10 b = 20
After swap a = 20 b = 10```

explanation of above code:

1. Add a + b and stored it into `b` i.e b = a + b, (b=10 + 20, now b become b = 30).
2. subtract b from a and stored it in variable `a` i.e a = b - a (a = 30 - 10, now a = 20).
3. subtract b from a and stored it in variable `b` i.e b = b - a (b= 30 - 20, now b = 10).

## swap two number using function

``````
#include <iostream>
using namespace std;

void Swapfun(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}

int main()
{
int a = 10, b = 20;
cout<<"Before swap a = "<<a<<" b = "<<b<<endl;
Swapfun(a, b);
cout<<"After swap a = "<<a<<" b = "<<b<<endl;
return 0;
}
``````

Output is the same as the above program, here we have performed swapping by using function.

## Swap number using bitwise operators

The output will same as the above program only difference is here, we have used a bitwise operator for performing the swapping of two numbers.

``````
#include <iostream>
using namespace std;

int main()
{
int a = 10, b = 20;
cout<<"Before swap a = "<<a<<" b = "<<b<<endl;
a = a ^ b;
b = b ^ a;
a = a ^ b;
cout<<"After swap a = "<<a<<" b = "<<b<<endl;

return 0;
}
``````

## Swap two numbers using class

In this program, you will take two input numbers from the user and swap the number by using class.

``````
#include<iostream>
using namespace std;

class StudyFame {
private:
int a, b;
public:
void getData();
void swap_number();
void display();
};
void StudyFame::getData() {
cout << "Enter Two Numbers: ";
cin >> a >> b;
}
void StudyFame::swap_number() {
int temp;
temp = a;
a = b;
b = temp;
}
void StudyFame::display() {
cout << "a = " << a << " b = " << b << endl;
}
int main() {
StudyFame s;
s.getData();
cout << "Before swap" << endl;
s.display();

s.swap_number();
cout << "After swap" << endl;
s.display();
return 0;
}
``````
output
```Enter Two Numbers: 10   30
Before swap
a = 10 b = 30
After swap
a = 30 b = 10```