A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2FFunction%2Ffunction_pointers</id>
		<title>C++ Tutorial/Function/function pointers - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2FFunction%2Ffunction_pointers"/>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B_Tutorial/Function/function_pointers&amp;action=history"/>
		<updated>2026-04-07T16:40:55Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B_Tutorial/Function/function_pointers&amp;diff=2481&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B_Tutorial/Function/function_pointers&amp;diff=2481&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:17Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B_Tutorial/Function/function_pointers&amp;diff=2482&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B_Tutorial/Function/function_pointers&amp;diff=2482&amp;oldid=prev"/>
				<updated>2010-05-25T10:29:49Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==arguments passed by pointer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;  &lt;br /&gt;
  using namespace std;  &lt;br /&gt;
    &lt;br /&gt;
  int main(){  &lt;br /&gt;
     void centimize(double*);  &lt;br /&gt;
    &lt;br /&gt;
     double var = 10.0;        &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;var = &amp;quot; &amp;lt;&amp;lt; var &amp;lt;&amp;lt; &amp;quot; inches&amp;quot; &amp;lt;&amp;lt; endl;  &lt;br /&gt;
    &lt;br /&gt;
     centimize(&amp;amp;var);          &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;var = &amp;quot; &amp;lt;&amp;lt; var &amp;lt;&amp;lt; &amp;quot; centimeters&amp;quot; &amp;lt;&amp;lt; endl;  &lt;br /&gt;
     return 0;  &lt;br /&gt;
  }  &lt;br /&gt;
  void centimize(double* ptrd){  &lt;br /&gt;
     *ptrd *= 2.54;            &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==arguments passed by reference==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;  &lt;br /&gt;
  using namespace std;  &lt;br /&gt;
    &lt;br /&gt;
  int main(){  &lt;br /&gt;
     void centimize(double&amp;amp;);    &lt;br /&gt;
    &lt;br /&gt;
     double var = 10.0;          &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;var = &amp;quot; &amp;lt;&amp;lt; var &amp;lt;&amp;lt; &amp;quot; inches&amp;quot; &amp;lt;&amp;lt; endl;  &lt;br /&gt;
    &lt;br /&gt;
     centimize(var);             &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;var = &amp;quot; &amp;lt;&amp;lt; var &amp;lt;&amp;lt; &amp;quot; centimeters&amp;quot; &amp;lt;&amp;lt; endl;  &lt;br /&gt;
     return 0;  &lt;br /&gt;
  }  &lt;br /&gt;
  void centimize(double&amp;amp; v){  &lt;br /&gt;
     v *= 2.54;                  &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==array passed by pointer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;  &lt;br /&gt;
  using namespace std;  &lt;br /&gt;
  const int MAX = 5;     &lt;br /&gt;
    &lt;br /&gt;
  int main(){  &lt;br /&gt;
     void centimize(double*);&lt;br /&gt;
    &lt;br /&gt;
     double varray[MAX] = { 10.0, 43.1, 95.9, 59.7, 87.3 };  &lt;br /&gt;
    &lt;br /&gt;
     centimize(varray);      &lt;br /&gt;
    &lt;br /&gt;
     for(int j=0; j&amp;lt;MAX; j++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;varray[&amp;quot; &amp;lt;&amp;lt; j &amp;lt;&amp;lt; &amp;quot;]=&amp;quot; &amp;lt;&amp;lt; varray[j] &amp;lt;&amp;lt; &amp;quot; centimeters&amp;quot; &amp;lt;&amp;lt; endl;  &lt;br /&gt;
     return 0;  &lt;br /&gt;
    }  &lt;br /&gt;
  void centimize(double* ptrd){  &lt;br /&gt;
     for(int j=0; j&amp;lt;MAX; j++)  &lt;br /&gt;
        *ptrd++ *= 2.54; &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arrays of pointers to functions==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 void Square (int&amp;amp;,int&amp;amp;);&lt;br /&gt;
 void Cube (int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 void Swap (int&amp;amp;, int &amp;amp;);&lt;br /&gt;
 void GetVals(int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 void PrintVals(int, int);&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
     int valOne=1, valTwo=2;&lt;br /&gt;
     int i;&lt;br /&gt;
     const int MaxArray = 5;&lt;br /&gt;
     void (*pFuncArray[MaxArray])(int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 &lt;br /&gt;
     pFuncArray[0] = GetVals; &lt;br /&gt;
     pFuncArray[1] = Square; &lt;br /&gt;
     pFuncArray[2] = Cube; &lt;br /&gt;
     pFuncArray[3] = Swap; &lt;br /&gt;
     pFuncArray[4] = Square; &lt;br /&gt;
 &lt;br /&gt;
     for (i=0;i&amp;lt;MaxArray; i++)&lt;br /&gt;
     {&lt;br /&gt;
         pFuncArray[i](valOne,valTwo);&lt;br /&gt;
         PrintVals(valOne,valTwo);&lt;br /&gt;
     }&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void PrintVals(int x, int y)&lt;br /&gt;
 {&lt;br /&gt;
     std::cout &amp;lt;&amp;lt; &amp;quot;x: &amp;quot; &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &amp;quot; y: &amp;quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Square (int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     rX *= rX;&lt;br /&gt;
     rY *= rY;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Cube (int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     int tmp;&lt;br /&gt;
 &lt;br /&gt;
     tmp = rX;&lt;br /&gt;
     rX *= rX;&lt;br /&gt;
     rX = rX * tmp;&lt;br /&gt;
 &lt;br /&gt;
     tmp = rY;&lt;br /&gt;
     rY *= rY;&lt;br /&gt;
     rY = rY * tmp;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Swap(int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     int temp;&lt;br /&gt;
     temp = rX;&lt;br /&gt;
     rX = rY;&lt;br /&gt;
     rY = temp;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void GetVals (int &amp;amp; rValOne, int &amp;amp; rValTwo)&lt;br /&gt;
 {&lt;br /&gt;
     std::cout &amp;lt;&amp;lt; &amp;quot;New value for ValOne: &amp;quot;;&lt;br /&gt;
     std::cin &amp;gt;&amp;gt; rValOne;&lt;br /&gt;
     std::cout &amp;lt;&amp;lt; &amp;quot;New value for ValTwo: &amp;quot;;&lt;br /&gt;
     std::cin &amp;gt;&amp;gt; rValTwo;&lt;br /&gt;
 }&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;New value for ValOne: 1&lt;br /&gt;
New value for ValTwo: 2&lt;br /&gt;
x: 1 y: 2&lt;br /&gt;
x: 1 y: 4&lt;br /&gt;
x: 1 y: 64&lt;br /&gt;
x: 64 y: 1&lt;br /&gt;
x: 4096 y: 1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Function pointer for overloaded function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int myfunc(int a);&lt;br /&gt;
int myfunc(int a, int b);&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  int (*fp)(int a); // pointer to int f(int)&lt;br /&gt;
  //int (*fp)(int a, int b);&lt;br /&gt;
  fp = myfunc; // points to myfunc(int)&lt;br /&gt;
  cout &amp;lt;&amp;lt; fp(5);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
int myfunc(int a)&lt;br /&gt;
{&lt;br /&gt;
  return a;&lt;br /&gt;
}&lt;br /&gt;
int myfunc(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
  return a*b;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;5&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==orders two arguments using pointers==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;  &lt;br /&gt;
  using namespace std;  &lt;br /&gt;
    &lt;br /&gt;
  int main(){  &lt;br /&gt;
     void order(int*, int*); &lt;br /&gt;
    &lt;br /&gt;
     int n1=99, n2=11;       &lt;br /&gt;
     int n3=22, n4=88;  &lt;br /&gt;
    &lt;br /&gt;
     order(&amp;amp;n1, &amp;amp;n2);        &lt;br /&gt;
     order(&amp;amp;n3, &amp;amp;n4);  &lt;br /&gt;
    &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;n1=&amp;quot; &amp;lt;&amp;lt; n1 &amp;lt;&amp;lt; endl;  &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;n2=&amp;quot; &amp;lt;&amp;lt; n2 &amp;lt;&amp;lt; endl;  &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;n3=&amp;quot; &amp;lt;&amp;lt; n3 &amp;lt;&amp;lt; endl;  &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;n4=&amp;quot; &amp;lt;&amp;lt; n4 &amp;lt;&amp;lt; endl;  &lt;br /&gt;
     return 0;  &lt;br /&gt;
    }  &lt;br /&gt;
  void order(int* numb1, int* numb2){  &lt;br /&gt;
     if(*numb1 &amp;gt; *numb2){  &lt;br /&gt;
        int temp = *numb1;          &lt;br /&gt;
        *numb1 = *numb2;  &lt;br /&gt;
        *numb2 = temp;  &lt;br /&gt;
     }  &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==sorts an array using pointers==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;  &lt;br /&gt;
  using namespace std;  &lt;br /&gt;
    &lt;br /&gt;
  int main(){  &lt;br /&gt;
     void bsort(int*, int);    &lt;br /&gt;
     const int N = 10;         &lt;br /&gt;
     int arr[N] = { 37, 84, 62, 91, 11, 65, 57, 28, 19, 49 };  &lt;br /&gt;
    &lt;br /&gt;
     bsort(arr, N);  &lt;br /&gt;
    &lt;br /&gt;
     for(int j=0; j&amp;lt;N; j++)  &lt;br /&gt;
        cout &amp;lt;&amp;lt; arr[j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;  &lt;br /&gt;
     cout &amp;lt;&amp;lt; endl;  &lt;br /&gt;
     return 0;  &lt;br /&gt;
    }  &lt;br /&gt;
  void bsort(int* ptr, int n){  &lt;br /&gt;
     void order(int*, int*); &lt;br /&gt;
     int j, k;               &lt;br /&gt;
    &lt;br /&gt;
     for(j=0; j&amp;lt;n-1; j++)    &lt;br /&gt;
        for(k=j+1; k&amp;lt;n; k++) &lt;br /&gt;
           order(ptr+j, ptr+k);&lt;br /&gt;
    }  &lt;br /&gt;
  void order(int* numb1, int* numb2){  &lt;br /&gt;
     if(*numb1 &amp;gt; *numb2){  &lt;br /&gt;
        int temp = *numb1;&lt;br /&gt;
        *numb1 = *numb2;  &lt;br /&gt;
        *numb2 = temp;  &lt;br /&gt;
     }  &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Use function pointers as a function parameter==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 using namespace std; &lt;br /&gt;
 &lt;br /&gt;
 void Square (int&amp;amp;,int&amp;amp;);&lt;br /&gt;
 void Cube (int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 void Swap (int&amp;amp;, int &amp;amp;);&lt;br /&gt;
 void GetVals(int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 void PrintVals(void (*)(int&amp;amp;, int&amp;amp;),int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
     int valOne=1, valTwo=2;&lt;br /&gt;
     void (*pFunc)(int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 &lt;br /&gt;
     pFunc = GetVals; &lt;br /&gt;
     PrintVals ( pFunc, valOne, valTwo);&lt;br /&gt;
     pFunc = Square; &lt;br /&gt;
     PrintVals ( pFunc, valOne, valTwo);&lt;br /&gt;
     pFunc = Cube; &lt;br /&gt;
     PrintVals ( pFunc, valOne, valTwo);&lt;br /&gt;
     pFunc = Swap; &lt;br /&gt;
     PrintVals ( pFunc, valOne, valTwo);&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void PrintVals( void (*pFunc)(int&amp;amp;, int&amp;amp;),int&amp;amp; x, int&amp;amp; y)&lt;br /&gt;
 {&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;x: &amp;quot; &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &amp;quot; y: &amp;quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; endl;&lt;br /&gt;
     pFunc(x,y);&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;x: &amp;quot; &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &amp;quot; y: &amp;quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; endl;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Square (int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     rX *= rX;&lt;br /&gt;
     rY *= rY;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Cube (int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     int tmp;&lt;br /&gt;
 &lt;br /&gt;
     tmp = rX;&lt;br /&gt;
     rX *= rX;&lt;br /&gt;
     rX = rX * tmp;&lt;br /&gt;
 &lt;br /&gt;
     tmp = rY;&lt;br /&gt;
     rY *= rY;&lt;br /&gt;
     rY = rY * tmp;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Swap(int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     int temp;&lt;br /&gt;
     temp = rX;&lt;br /&gt;
     rX = rY;&lt;br /&gt;
     rY = temp;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void GetVals (int &amp;amp; rValOne, int &amp;amp; rValTwo)&lt;br /&gt;
 {&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;New value for ValOne: &amp;quot;;&lt;br /&gt;
     cin &amp;gt;&amp;gt; rValOne;&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;New value for ValTwo: &amp;quot;;&lt;br /&gt;
     cin &amp;gt;&amp;gt; rValTwo;&lt;br /&gt;
 }&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;x: 1 y: 2&lt;br /&gt;
New value for ValOne: 1&lt;br /&gt;
New value for ValTwo: 2&lt;br /&gt;
x: 1 y: 2&lt;br /&gt;
x: 1 y: 2&lt;br /&gt;
x: 1 y: 4&lt;br /&gt;
x: 1 y: 4&lt;br /&gt;
x: 1 y: 64&lt;br /&gt;
x: 1 y: 64&lt;br /&gt;
x: 64 y: 1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Use typedef to define a function type for function pointer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 void Square (int&amp;amp;,int&amp;amp;);&lt;br /&gt;
 void Cube (int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 void Swap (int&amp;amp;, int &amp;amp;);&lt;br /&gt;
 void GetVals(int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 &lt;br /&gt;
 typedef  void (*VPF) (int&amp;amp;, int&amp;amp;) ;&lt;br /&gt;
 void PrintVals(VPF,int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
     int valOne=1, valTwo=2;&lt;br /&gt;
     VPF pFunc;&lt;br /&gt;
 &lt;br /&gt;
     pFunc = GetVals;&lt;br /&gt;
     pFunc = Square;&lt;br /&gt;
     pFunc = Cube;&lt;br /&gt;
 &lt;br /&gt;
     pFunc = Swap;&lt;br /&gt;
  &lt;br /&gt;
     PrintVals ( pFunc, valOne, valTwo);&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void PrintVals( VPF pFunc,int&amp;amp; x, int&amp;amp; y)&lt;br /&gt;
 {&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;x: &amp;quot; &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &amp;quot; y: &amp;quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; endl;&lt;br /&gt;
     pFunc(x,y);&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;x: &amp;quot; &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &amp;quot; y: &amp;quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; endl;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Square (int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     rX *= rX;&lt;br /&gt;
     rY *= rY;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Cube (int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     int tmp;&lt;br /&gt;
 &lt;br /&gt;
     tmp = rX;&lt;br /&gt;
     rX *= rX;&lt;br /&gt;
     rX = rX * tmp;&lt;br /&gt;
 &lt;br /&gt;
     tmp = rY;&lt;br /&gt;
     rY *= rY;&lt;br /&gt;
     rY = rY * tmp;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Swap(int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     int temp;&lt;br /&gt;
     temp = rX;&lt;br /&gt;
     rX = rY;&lt;br /&gt;
     rY = temp;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void GetVals (int &amp;amp; rValOne, int &amp;amp; rValTwo)&lt;br /&gt;
 {&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;New value for ValOne: &amp;quot;;&lt;br /&gt;
     cin &amp;gt;&amp;gt; rValOne;&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;New value for ValTwo: &amp;quot;;&lt;br /&gt;
     cin &amp;gt;&amp;gt; rValTwo;&lt;br /&gt;
 }&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;x: 1 y: 2&lt;br /&gt;
x: 2 y: 1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using function pointers==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 void Square (int&amp;amp;,int&amp;amp;);&lt;br /&gt;
 void Cube (int&amp;amp;, int&amp;amp;);&lt;br /&gt;
 void Swap (int&amp;amp;, int &amp;amp;);&lt;br /&gt;
 void PrintVals(int, int);&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
     void (* pFunc) (int &amp;amp;, int &amp;amp;);&lt;br /&gt;
     int valOne=1, valTwo=2;&lt;br /&gt;
     PrintVals(valOne, valTwo);&lt;br /&gt;
     pFunc(valOne, valTwo);&lt;br /&gt;
     PrintVals(valOne, valTwo);&lt;br /&gt;
     pFunc = Square; &lt;br /&gt;
     PrintVals(valOne, valTwo);&lt;br /&gt;
     pFunc(valOne, valTwo);&lt;br /&gt;
     PrintVals(valOne, valTwo);&lt;br /&gt;
     pFunc = Cube; &lt;br /&gt;
     PrintVals(valOne, valTwo);&lt;br /&gt;
     pFunc(valOne, valTwo);&lt;br /&gt;
     PrintVals(valOne, valTwo);&lt;br /&gt;
     pFunc = Swap; &lt;br /&gt;
     PrintVals(valOne, valTwo);&lt;br /&gt;
     pFunc(valOne, valTwo);&lt;br /&gt;
     PrintVals(valOne, valTwo);&lt;br /&gt;
     &lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void PrintVals(int x, int y)&lt;br /&gt;
 {&lt;br /&gt;
     std::cout &amp;lt;&amp;lt; &amp;quot;x: &amp;quot; &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &amp;quot; y: &amp;quot; &amp;lt;&amp;lt; y &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Square (int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     rX *= rX;&lt;br /&gt;
     rY *= rY;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Cube (int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     int tmp;&lt;br /&gt;
 &lt;br /&gt;
     tmp = rX;&lt;br /&gt;
     rX *= rX;&lt;br /&gt;
     rX = rX * tmp;&lt;br /&gt;
 &lt;br /&gt;
     tmp = rY;&lt;br /&gt;
     rY *= rY;&lt;br /&gt;
     rY = rY * tmp;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Swap(int &amp;amp; rX, int &amp;amp; rY)&lt;br /&gt;
 {&lt;br /&gt;
     int temp;&lt;br /&gt;
     temp = rX;&lt;br /&gt;
     rX = rY;&lt;br /&gt;
     rY = temp;&lt;br /&gt;
 }&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;x: 1 y: 2&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>