इस page में, हम C ++ में parameter passing method का उपयोग करके 3 तरीके से Parameter पास करेंगे, जो निम्न हैं,
call by value in C++ in hindi
इसमें, calling function के parameters की values को function – definition के parameters में declared variable में copy किया जाता है यानी actual parameter के values को formal parameter में copy होती है-
function definition में केवल formal parameters द्वारा copy किए गए actual parameters (actual value ) के values का use होता है।
एक तरह से, function definition में duplicate values होते हैं। इसलिए भले ही दोनों parameters में declared variable -name एक जैसे हों फिर भी formal parameter की values change होने पर actual parameter की value में कोई बदलाव नहीं होता है।
void value(int,int); // function declaration
.................
.................
value(x,y); // call by reference
void value (int x, int y) // function definition
{
............
............
}
इसका program नीचे दिया गया है –
#include<iostream.h>
#include<conio.h>
void value(int,int); // function declaration
void main()
{
clrscr();
int x,y; // variable declaration
cout<<"Enter two number: ";
cin>>x>>y;
cout<<"\nFirst number : "<<x;
cout<<"\nSecond number: "<<y;
value(x,y); // call by value
cout<<"\nafter call by value";
cout<<"\nFirst number : "<<x;
cout<<"\nSecond number: "<<y;
getch();
}
void value (int x, int y) // function definition
{
int z;
z = x;
x = y;
y = z;
}
OUTPUT
Enter two number: 2 3
First number : 2
Second number: 3
after call by value
First number : 2
Second number: 3
call by reference in C++ in hindi
इसमें, formal parameter में reference variable होते हैं, जो actual parameter का reference होते हैं जिनका different variable name होता है। यहाँ पर call by value की तरह ही, actual parameter की values formal parameter में copy होती हैं।
परन्तु जब formal parameter के values में परिवर्तन होता है , तो actual parameter की value भी बदल जाती है।
void value(int&,int&); // function declaration
.................
.................
value(x,y); // call by reference
void value (int &a, int &b) // function definition
{
............
............
}
इसका program नीचे दिया गया है-
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int x,y; // variable declaration
void value(int&,int&); // function declaration
cout<<"Enter two number: ";
cin>>x>>y;
cout<<"\nFirst number : "<<x;
cout<<"\nSecond number: "<<y;
value(x,y); // call by reference
cout<<"\nafter call by reference";
cout<<"\nFirst number : "<<x;
cout<<"\nSecond number: "<<y;
getch();
}
void value (int &a, int &b) // function definition
{
int c;
c = a;
a = b;
b = c;
}
OUTPUT
Enter two number: 2 3
First number : 2
Second number: 3
after call by reference
First number : 3
Second number: 2
call by pointer in C++ in hindi
parameter passing का यह method अन्य दो से अलग है। इसे समझने के लिए, pointer को समझना आवश्यक है। इस method में, function definition में values का memory address pass होता है,
जैसा कि हम जानते हैं कि हम एक pointer variable का उपयोग करते हुए हम किसी values के memory address को access कर सकते हैं। इसलिए function definition में formal parameters , pointer variables होते हैं जो actual parameter का address access करते हैं। इस तरह function definition में values का memory address pass होता है,
इसमें भी, जब call by reference की तरह , formal parameter की values बदलने पर actual parameter की value भी बदल जाती है।
void value(int*,int*); // function declaration
.................
.................
value(&x,&y); // call by reference
void value (int *a, int *b) // function definition
{
............
............
}
इसका program नीचे दिया गया है-
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int x,y; // variable declaration
void value(int*,int*); // function declaration
cout<<"Enter two number: ";
cin>>x>>y;
cout<<"\nFirst number : "<<x;
cout<<"\nSecond number: "<<y;
value(&x,&y); // call by pointer
cout<<"\nafter call by pointer";
cout<<"\nFirst number : "<<x;
cout<<"\nSecond number: "<<y;
getch();
}
void value (int *a, int *b) // function definition
{
int c;
c = *a;
*a = *b;
*b = c;
}
OUTPUT
Enter two number: 2 3
First number : 2
Second number: 3
after call by pointer
First number : 3
Second number: 2
इस प्रकार हम एक parameter passing से function definition में values को pass करते हैं।
Things to know
call by value और call by reference के बीच एकमात्र अंतर यह है कि जहां call by value में parameters name (actual और formal parameter में ) same होता है वहीं call by value में parameters name different होंगे।
previous – Function and their type in C++ Hindi
next- String library function and theirs examples