in pass by referance the parameters are passed as the
address of the variables whereas in pass by value the
variables are directly passed as parameters
In case of pass by value..the change in the sub-function
will not cause any change in the main function wheareas in
pass by reference..the change in the sub-function will
change the value in the main function..
in pass by referce function can access original memory
location of variable so can access value while in case of
pass by value fuction can copy the value of variable to the
prototype of its kind of variable so calling funcion can
access the prototype variable but not the direct original
variable.
in Pass by value; if any change in variable in the sub-
function may not reflected to the main function. where as
in pass by reference the change in the variable may reflect
to the original value in the main funtion.
ex : // Pass by Reference
void Get( int &nIndex){
nIndex = 10;
}
void main()
{
int x = 100;
cout<<Get( x );
}
o/p : 10;
ex : // Pass by Value
void Get( int nIndex){
nIndex = 10;
}
void main()
{
int x = 999;
cout<<Get( x );
}
o/p : 999
Pass By Value:
1.It passes the actual value of parameter from the function
call.
2.Value of the parameter variable in calling functions
remains unchanged.
3.copy of the variable of actual parameter are made and
transfer to the formal parameter.
call By Reference:
1.the address of the actual parameter has to be transfered
2.the formal parameter in the function decleretion must of
pointer type.
3.Any changes in the formal parameter can change the value
of actual patameter.
When a private constructer is being inherited from one
class to another class and when the object is instantiated
is the space reserved for this private variable in the
memory??