Total members 11889 |It is currently Sun Apr 14, 2024 9:41 pm Login / Join Codemiles

Java

C/C++

PHP

C#

HTML

CSS

ASP

Javascript

JQuery

AJAX

XSD

Python

Matlab

R Scripts

Weka





Passing parameter by reference,
cpp code
#include <iostream>

using namespace std;

// Swap two values.
void swap(double &a, double &b)
{
double tmp = a;
a = b;
b = tmp;
}

// Return multiple results.
void stats(double x, double y, double &absdif, double &mean, double &sumsqr)
{
if(x > y) swap(x, y);

absdif = y - x;
mean = (x + y) / 2.0;
sumsqr = x*x + y*y;
}

int main()
{
double a = 10.45;
double b = 20.22;

cout << a << " " << b << endl;
swap(a, b);
cout << a << " " << b << "\n" << endl;

double c = 4.56;
double d = -3.45;
double absdif, mean, ss;
stats(c, d, absdif, mean, ss);
cout << c << " " << d << " " << absdif << " " <<
mean << " " << ss << endl;
stats(22.0, 41.5, absdif, mean, ss);
cout << absdif << " " << mean << " " << ss << endl;
}


The usual way of passing parameters in C++, and the only way in C, is by value. Each parameter becomes a copy of its argument, and changes to in the function body do not make changes in the caller. This is similar to Java. C++ provides reference parameters, which are denoted using an & in front of the parameter name. Reference parameters become aliases for their arguments, and changes to the parameters immediately change the arguments. You cannot send an expression argument to a reference parameter; you must send something which could appear on the left side of an assignment.

The swap function is a classic use of reference parameters. When the reference parameters are exchanged, the arguments are exchanged since the parameters are aliases for them. Also notice that the stats function receives x and y by value, and uses swap to exchange its copies, but this does not effect the values of c and d in the main.

Reference parameters are by far the main use of the reference mechanism in C++. It can also be used for return values, and, though it seems to have no practical use, ordinary variables.



_________________
Please recommend my post if you found it helpful


Author:
Beginner
User avatar Posts: 95
Have thanks: 2 time
Post new topic Reply to topic  [ 1 post ] 

  Related Posts  to : Reference Parameters
 Method Parameters,,,is it by value or reference???     -  
 object reference be cast to an interface reference     -  
 Encoding parameters in URL     -  
 Function with default parameters     -  
 get url, title and url sent parameters with JQuery     -  
 Send parameters using HTTP GET     -  
 Post parameters using JQuery     -  
 Extracting Parameters from GET or POST Request     -  
 Get values of Form parameters using JQuery     -  
 Implicit and Explicit Parameters,,,What's the differences?     -  



Topic Tags

C++ Variables






Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com