// swapexample.cpp
#include <iostream>
using namespace std;
// κλήση ως προς τιμή (call by value)
void swap1(int x, int y){
int temp;
temp = x;
x = y;
y = temp;
}
// κλήση ως προς αναφορά (call by reference, με δείκτες)
void swap2(int *px, int *py){
int temp;
temp = *px;
*px = *py;
*py = temp;
}
// κλήση ως προς αναφορά (call by reference, με διευθύνσεις/αναφορές)
void swap3(int &rx, int &ry){
int temp;
temp = rx;
rx = ry;
ry = temp;
}
int main ()
{
int a = 10, b = 30;
cout << "Καλώ την swap1(x,y): \n";
swap1(a, b);
cout << "a = " << a << " " << "b = " << b << "\n";
cout << "Καλώ την swap2(x,y): \n";
swap2(&a, &b);
cout << "a = " << a << " " << "b = " << b << "\n";
cout << "Καλώ την swap3(x,y): \n";
swap3(a, b);
cout << "a = " << a << " " << "b = " << b << "\n";
}